2012-09-29 111 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