我是正则表达式的新手。我对这个有疑问。我需要将 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/