2010-06-09 24 views
1

爲什麼不把prepClass分配給字符串selectorClass帶下劃線而不是非alpha字符?我需要改變它到什麼?容易的Javascript正則表達式問題

var regex = new RegExp("/W/", "g"); 
var prepClass = selectorClass.replace(regex, "_"); 

回答

4

幾件事情:

  • 如果使用RegExp構造,你不需要斜線,你也許與RegExp文字語法混亂了。
  • 你想匹配\W字符類。

下面的工作:

var regex = new RegExp("\\W", "g"); 

RegExp構造函數接受含圖案的字符串,請注意您應該雙逃逸斜線,爲了得到一個單斜槓和W( "\W")。

或者你可以簡單地使用文字符號:

var regex = /\W/g; 

推薦閱讀:

+0

Correctamundo。謝謝。我會盡快接受時間限制 – Matrym 2010-06-09 07:22:54

+0

側面的問題 - 我可以使用/ \ W/g內部替換而不是定義一個變量正則表達式嗎? – Matrym 2010-06-09 07:27:36

+0

@Matrym:是的,你可以直接使用replace:'.replace(new RegExp(「\\ W」,「g」),「_」)或'.replace(/ \ W/g「 _「)'。 – Guffa 2010-06-09 07:31:11