2010-06-09 3 views
1

Почему это не назначает prepClass для строки selectorClass с символами подчеркивания вместо не-альфа-символов? Что мне нужно изменить?Easy Javascript Regex Question

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

+0

Боковой вопрос - могу ли я просто использовать/\ W/g для замены вместо определения переменной regex? – Matrym

+0

@Matrym: Да, вы можете использовать либо непосредственно в замене: .replace (новый RegExp ("\\ W", "g"), "_") 'или' .replace (/ \ W/g, " _ ")'. – Guffa