我有这个无法运行的 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
的返回值,它返回包含完整数学表达式的数组,后跟捕获的组。
关于javascript - 仅匹配字母字符的正则表达式变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27072924/