javascript - 来自变量的 RegExp 模式的一部分

标签 javascript regex

我是正则表达式的新手。我对这个有疑问。我需要将 addons 变量中的字符作为允许的字符添加到下一个正则表达式 re

var addons = '_-';
re = new RegExp(/^[a-zA-Z]+$/i);

console.log('match a', re.test('a'));
console.log('match a_', re.test('a_'));
console.log('no match 9', re.test('9'));
console.log('no match 9_', re.test('9_'));

有什么建议吗?谢谢。

最佳答案

您需要构建也允许这些字符的正则表达式:

var addons = '_-';
    re = new RegExp('^[a-zA-Z]+['+addons+']?$','i');

console.log('match a', re.test('a'));
console.log('match a_', re.test('a_'));
console.log('no match 9', re.test('9'));
console.log('no match 9_', re.test('9_'));

这将测试addons(括号)中的任何字符,并且它们不是必需的()。

关于javascript - 来自变量的 RegExp 模式的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26861732/

相关文章:

javascript - 无法在数据表中加载 json 文件

javascript - 正则表达式在 URL 地址测试中失败

regex - 在Graylog中搜索带有破折号和数字的字符串?

Javascript动态加载html到另一个html文件中

regex - 带有复杂分隔符的 Linux grep 命令

Java正则表达式

javascript - Jquery 中的内联正则表达式

javascript - 如何在javascript中的函数内定义函数?

javascript - 将单击的按钮的下一个元素发送到 jQuery UI 对话框

javascript - 只刷新 Div 不滚动