1

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

例如。

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

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

4

1 回答 1

4

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

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

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

于 2012-09-29T05:25:53.273 回答