JavaScript RegEx:使用RegEx检索String的一部分?

时间:2012-09-03 12:29:12

标签: javascript regex

我有一个字符串,其值类似于:"H798asdhka80:124htg"

我想从冒号“:”之前的每个字符中检索此字符串(以及类似结构化的字符串),因此我的新字符串将如下所示:H798asdhka80

这样做的代码是什么样的?

谢谢

5 个答案:

答案 0 :(得分:6)

使用

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

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

答案 1 :(得分: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');

答案 2 :(得分:3)

一个reg exp回答,匹配从字符串开头到冒号的任何内容。

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

答案 3 :(得分:2)

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

答案 4 :(得分:0)

你真的不需要一个RegExp。这应该适合你:

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

无论如何,另一种方式是replace带有正则表达式的字符串中不需要的部分,如下所示:

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

Demo