javascript正则表达式:匹配字符串中的值

时间:2010-11-18 21:35:19

标签: javascript regex

我有这个表达式来检查URL是否存在密钥:

new RegExp('/'+x+'/ig')

(删除了不相关的代码)

事情是,它不起作用。我想我必须使用分隔符(开始和结束)才能工作,因为url有许多其他的东西,但不知道如何去做。

有什么想法吗?

2 个答案:

答案 0 :(得分:4)

使用new Regex()时,必须将标志作为第二个参数传递

new RegExp(x, 'ig')

请注意,当您以这种方式创建RegExp需要文字分隔符

答案 1 :(得分:2)

看起来你正在混合正则表达式文字和字符串。

编写正则表达式的一种方法是这样的:

var myExp = new RegExp('[a-z]*')

它可以任意次数匹配来自a-z的任意数量的字母。 另一种做同样事情的方法是:

var myExp = /[a-z]*/

甚至

var myExp = /[a-z*]/ig

其中ig表示“忽略大小写”和“全局”。

所以,坚持一种写作方式。不要混合字符串和文字。

编辑:

如果要使用第一种语法,但也忽略大小写并使匹配成为全局,则将字符串'ig'作为第二个参数传递给RegExp构造函数(new RegExp('[a-z]*', 'ig')