我有这个无法正常运作的javascript:
function test(id) {
if (id.match('^(.+?)#')) {
alert(RegExp.$1);
}
}
test('test#f'); // should alert 'test'
test('tes4t#f'); // should not alert
http://jsfiddle.net/r7mky2y9/1/
我只想匹配出现在
a-zA-Z
前面的#
字符。我尝试调整正则表达式,使它为(.+?)[a-zA-Z]
,但我感觉不正确。 最佳答案
那是您的正则表达式101:
var m = id.match(/^([a-zA-Z]+)#/);
if (m) alert(m[1]);
在Javascript中,正斜杠之间定义了正则表达式。
另外,惰性量词在这里没有用。我还没有测试过表演,但是应该没有任何区别。
最后,利用
match
的返回值,该返回值返回并包含具有完整数学表达式的数组,其后是捕获的组。