javascript - 仅匹配字母字符的正则表达式变量

标签 javascript regex

我有这个无法运行的 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/

相关文章:

java - 如何通过使用正则表达式排除同一圆括号中的内容来仅匹配圆括号

regex - PHP中[\w\-]正则表达式是什么意思

javascript - 从 onclick 链接将多个变量传递给 javascript 函数

javascript - 如何在运行时在 ngResource 查询方法中设置超时

php - 替换为 preg_replace 中的动态变量

regex - gorilla Mux 正则表达式

python - 如何添加到每行末尾附近的数字

javascript - 您可以在自定义页面代码上调用或使用数据元素吗?就像 GTM 中的变量

javascript - 为什么我提交时无法获取 POST/GET 文本框

缩小后的 Javascript 错误