Javascript匹配功能

时间:2012-09-29 05:23:50

标签: javascript jquery regex

如何在javascript中的match函数内部表达?

例如

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

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

1 个答案:

答案 0 :(得分:4)

您需要显式构造一个RegExp对象:

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

请注意,反斜杠需要加倍,以说明字符串常量语法使用反斜杠进行特殊字符引用,并且您不需要前导和尾随 - 斜线。