如何在javascript中的match
函数内部表达?
例如
var val = $('#somElement').val();
var startWith = '#'
var match = val.match('/(\s)?' + startWith + '(.*?)(\s+|$)/'g);
匹配函数接受一个没有字符串的参数,因此上面的行是错误的。如何更改它以便我可以根据变量的值动态地将参数提供给val.match?
答案 0 :(得分:4)
您需要显式构造一个RegExp对象:
var match = val.match( new RegExp('(\\s)?' + startWith + '(.*?)(\\s+|$)', 'g') );
请注意,反斜杠需要加倍,以说明字符串常量语法还使用反斜杠进行特殊字符引用,并且您不需要前导和尾随 - 斜线。