将变量插入正则表达式字符串
Inserting variables into a regular expression string
我在StackOverflow上发现了很多关于如何做到这一点的问题,但它只是不适合我。
var username = "abcdefg";
var min_length = 3;
var max_length = 24;
var regex = new RegExp('^['w.-]{' + min_length + ',' + max_length + '}$');
if (regex.test(username))
document.getElementById('status').innerHTML = 'match';
else
document.getElementById('status').innerHTML = 'no match';
我还尝试在前后使用斜杠:
new RegExp('/^['w.-]{' + min_length + ',' + max_length + '}$/')
我也尝试过用双引号代替单引号(不确定regex是否将单引号视为保留或其他东西)。
如果我删除引号并为变量输入数字,它会工作得很好:
new RegExp(/^['w.-]{3,24}$/)
jsFiddle:http://jsfiddle.net/88ef3/
当您使用RegExp
构造函数从字符串构建正则表达式时,您必须转义斜杠:
new RegExp('^[''w.-]{' + min_length + ',' + max_length + '}$');
请记住,斜杠在javascript字符串中用于转义,但这里您希望斜杠作为字符,因此必须转义它本身。
new RegExp('^[''w.-]{' + min_length + ',' + max_length + '}$')
这可能有帮助
var username = "abcdefg";
var min_length = 3;
var max_length = 24;
var str1='^[''w.-]{'+min_length+','+max_length+'}$';
var regex = new RegExp(str1,"i");
if (regex.test(username))
document.getElementById('status').innerHTML = 'match';
else
document.getElementById('status').innerHTML = 'no match';
http://jsfiddle.net/Et7J8/相关文章:
- 正则表达式在字符串中找到base64
- 子字符串/正则表达式以获取字符串中保存的 SRC 值
- 从字符串中提取年份的Javascript正则表达式
- Javascript 如何强制 string.replace 不将我的字符串解释为正则表达式
- 如何将正则表达式包含到字符串数组中
- 使用正则表达式匹配长度为六个字符的字母数字字符串
- 使用正则表达式反转字符串中的元音
- 如何分割由JavaScript中使用正则表达式的多个部分组成的字符串
- 在字符串列表中搜索任何出现的单词,如果单词的第一个字符匹配,则高亮匹配单词.Javascript正则表达式
- 删除两个字符串正则表达式之间的所有内容
- Javascript,字符串正则表达式匹配
- 字符串正则表达式模式.replace(/{0}/, “$0.00”) 不起作用
- Javascript:字符串正则表达式
- 如何在JavaScript中子字符串正则表达式
- 匹配大写或小写字符串正则表达式
- 逗号和空格分隔的数字和连字符分隔的字符串正则表达式
- 解析CGI查询字符串正则表达式
- 分析已知键的字符串正则表达式,但保留分隔符
- 在一组字符串中重新排列一个字符串 - 正则表达式
- 从字符串正则表达式中提取多个值