来自变量的RegEx模式的一部分

时间:2014-11-11 09:37:45

标签: 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_'));

有什么建议吗?感谢。

1 个答案:

答案 0 :(得分:1)

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

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(括号)中的任何字符,而且不需要它们(?)。