Javascript 不要在匹配中包含字符串
我试图在字符串上运行regex,比如Javascript 不要在匹配中包含字符串,javascript,regex,match,Javascript,Regex,Match,我试图在字符串上运行regex,比如 string='值为ij35dss。该值为fsd53fdsfds。“ 在这里,我需要类似于string.match(/值是(.*?)\./g)的内容 要仅返回['ijdss','fsdfdsfds']而不返回['value is ijdss','value is fsdfdsfds'.]请使用以下示例: var string = 'The value is ij35dss. The value is fsd53fdsfds.'; var re = new R
string='值为ij35dss。该值为fsd53fdsfds。“
在这里,我需要类似于string.match(/值是(.*?)\./g)的内容代码>
要仅返回['ijdss','fsdfdsfds']
而不返回['value is ijdss','value is fsdfdsfds'.]
请使用以下示例:
var string = 'The value is ij35dss. The value is fsd53fdsfds.';
var re = new RegExp(/The value is (.*?)\./g)
var strs = []
var m = re.exec(string)
while(m != null) {
strs.push(m[1]);
m = re.exec(string)
}
alert(strs)
和一个jsFiddle:
如果您认为经常需要,可以将其添加到字符串中。原型:
String.prototype.matchGroup = function(re, group) {
var m = re.exec(string);
var strs = [];
while(m != null) {
strs.push(m[group]);
m = re.exec(string);
}
return strs;
}
var string = 'The value is ij35dss. The value is fsd53fdsfds.';
alert(string.matchGroup(/The value is (.*?)\./g, 1));
jsFiddle:
学分:
请改用,下面是一个示例:
var string = 'The value is ij35dss. The value is fsd53fdsfds.';
var re = new RegExp(/The value is (.*?)\./g)
var strs = []
var m = re.exec(string)
while(m != null) {
strs.push(m[1]);
m = re.exec(string)
}
alert(strs)
和一个jsFiddle:
如果您认为经常需要,可以将其添加到字符串中。原型:
String.prototype.matchGroup = function(re, group) {
var m = re.exec(string);
var strs = [];
while(m != null) {
strs.push(m[group]);
m = re.exec(string);
}
return strs;
}
var string = 'The value is ij35dss. The value is fsd53fdsfds.';
alert(string.matchGroup(/The value is (.*?)\./g, 1));
jsFiddle:
学分:
查看编辑-但是,我不明白为什么您会将其视为“黑客”。这是使用regexps的一种正常方法-匹配,然后循环所有匹配和提取组,对我来说似乎非常干净。@BHare,它不是黑客的,只是写得不好。可以做得更好,比如:我理解它不是“黑客式的”,因为javascript中没有像我使用过的任何其他语言那样的方法来执行正则表达式;这是一个看起来很刻薄的部分。函数matchGroup虽然简单,但并不存在于本机。请参阅编辑-但是,我不明白为什么您会将其视为“黑客”。这是使用regexps的一种正常方法-匹配,然后循环所有匹配和提取组,对我来说似乎非常干净。@BHare,它不是黑客的,只是写得不好。可以做得更好,比如:我理解它不是“黑客式的”,因为javascript中没有像我使用过的任何其他语言那样的方法来执行正则表达式;这是一个看起来很刻薄的部分。函数matchGroup虽然简单,但并不存在于本机。