我有一个字符串,其值如下:"H798asdhka80:124htg"
我想从这个字符串(和类似结构的字符串)中检索冒号“:”之前的每个字符,所以我的新字符串看起来像这样:H798asdhka80
执行此操作的代码是什么样的?
谢谢
我有一个字符串,其值如下:"H798asdhka80:124htg"
我想从这个字符串(和类似结构的字符串)中检索冒号“:”之前的每个字符,所以我的新字符串看起来像这样:H798asdhka80
执行此操作的代码是什么样的?
谢谢
采用
var str="H798asdhka80:124htg".split(':')[0]
使用split(':')
你得到数组["H798asdhka80","124htg"]
。然后只使用该数组的第一个元素。
使用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');
一个正则表达式答案,匹配从字符串开头到冒号的任何内容。
var str = "H798asdhka80:124htg";
var txt = str.match(/^[^:]+/);
"H798asdhka80:124htg".split(':')[0]
您实际上并不需要 RegExp。这应该适合你:
str.split(':')[0];
无论如何,另一种方法是replace
使用正则表达式对字符串中不需要的部分进行处理,如下所示:
str.replace(/:.+$/, '');