0

我有一个字符串,其值如下:"H798asdhka80:124htg"

我想从这个字符串(和类似结构的字符串)中检索冒号“:”之前的每个字符,所以我的新字符串看起来像这样:H798asdhka80

执行此操作的代码是什么样的?

谢谢

4

5 回答 5

6

采用

var str="H798asdhka80:124htg".split(':')[0]

使用split(':')你得到数组["H798asdhka80","124htg"]。然后只使用该数组的第一个元素。

于 2012-09-03T12:30:24.467 回答
4

使用substr

var str = "H798asdhka80:124htg",
    strpart = str.substr(0,str.indexOf(':'));

或者slice

var str = "H798asdhka80:124htg",
    strpart = str.slice(0,str.indexOf(':'));

或者split

var strpart = "H798asdhka80:124htg".split(/:/)[0];

或者match

var str = "H798asdhka80:124htg".match(/(^.+)?:/)[1];

或者replace

var str = "H798asdhka80:124htg".replace(/:.+$/,'');

或创建更通用的String.prototype扩展

String.prototype.sliceUntil = function(str){
  var pos = this.indexOf(str);
  return this.slice(0, (pos>-1 ? pos : this.length));
}
var str = "H798asdhka80:124htg".sliceUntil(':124');
于 2012-09-03T12:30:32.857 回答
3

一个正则表达式答案,匹配从字符串开头到冒号的任何内容。

var str = "H798asdhka80:124htg";
var txt = str.match(/^[^:]+/);
于 2012-09-03T12:33:21.680 回答
2
"H798asdhka80:124htg".split(':')[0]
于 2012-09-03T12:30:57.350 回答
0

您实际上并不需要 RegExp。这应该适合你:

str.split(':')[0];

无论如何,另一种方法是replace使用正则表达式对字符串中不需要的部分进行处理,如下所示:

str.replace(/:.+$/, '');

演示

于 2012-09-03T12:31:48.537 回答