2012-09-29 74 views
1

如何在javascript中的match函数中表达?Javascript匹配函数

例如,

var val = $('#somElement').val(); 
var startWith = '#' 
var match = val.match('/(\s)?' + startWith + '(.*?)(\s+|$)/'g); 

匹配函数接受一个没有字符串的参数,因此上面的一行是错误的。我如何改变它,以便我可以根据我的变量的值动态地将参数放入val.match中?

回答

4

你需要明确构建一个RegExp对象:

var match = val.match(new RegExp('(\\s)?' + startWith + '(.*?)(\\s+|$)', 'g')); 

注意反斜杠需要加倍,占该字符串常量语法使用特殊字符引用反斜线的事实,你不需要前后斜线。

+0

非常好。谢谢。 – Jack