JavaScript正则表达式:使用正则表达式检索字符串的一部分?

JavaScript正则表达式:使用正则表达式检索字符串的一部分?,javascript,regex,Javascript,Regex,我有一个字符串,其值如下:“H798asdhka80:124htg” 我想从这个字符串(以及结构类似的字符串)中检索冒号之前的每个字符:“因此,我的新字符串如下所示:H798asdhka80 执行此操作的代码是什么样子的 谢谢使用 var str="H798asdhka80:124htg".split(':')[0] 使用split(“:”)可以得到数组[“H798asdhka80”,“124htg”]。然后只使用该数组的第一个元素。使用substr: var str = "H798asdhk

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

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

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

谢谢使用

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

使用
split(“:”)
可以得到数组
[“H798asdhka80”,“124htg”]
。然后只使用该数组的第一个元素。

使用
substr

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

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

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

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

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');

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

str.split(':')[0];
无论如何,另一种方法是用正则表达式替换字符串中不需要的部分,如下所示:

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

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

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

海报上问的reg exp在哪里?:)@没有必要使用reg exp,我认为这样更好更简单
var str = "H798asdhka80:124htg";
var txt = str.match(/^[^:]+/);