Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 30.05.2012, 12:35
Новичок на форуме
Отправить личное сообщение для SiZE Посмотреть профиль Найти все сообщения от SiZE
 
Регистрация: 04.05.2009
Сообщений: 7

Замена в строке исключая указанные символы и дефис.
Получаю строку, например, "as-@#/ss123=-фыва". Произвожу в ней замену

var text = text.replace( /[^a-zA-Z0-9_]/, '_' );

Мне надо еще добавить внутрь квадратных скобок минус «-», т.е. так [^a-zA-Z0-9_-]. Но внутри скобок он означает диапазон. Как быть?
Ответить с цитированием
  #2 (permalink)  
Старый 30.05.2012, 12:39
Аватар для Amphiluke
   ☽
Отправить личное сообщение для Amphiluke Посмотреть профиль Найти все сообщения от Amphiluke
 
Регистрация: 07.01.2011
Сообщений: 254

Экранировать бэкслешем. Хотя символ «-» в конце группировки [], вроде, правильно интерпретируется, и без экранирования

Последний раз редактировалось Amphiluke, 30.05.2012 в 12:44.
Ответить с цитированием
  #3 (permalink)  
Старый 30.05.2012, 12:43
Новичок на форуме
Отправить личное сообщение для SiZE Посмотреть профиль Найти все сообщения от SiZE
 
Регистрация: 04.05.2009
Сообщений: 7

Спасибо. Я еще добавил флажок g. Т.к не вкурил почему на выходе бэкслеш в передаваемой строке остался. А оказалось была произведена только одна замена и все.
Ответить с цитированием
  #4 (permalink)  
Старый 30.05.2012, 12:44
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от SiZE
Мне надо еще добавить внутрь квадратных скобок минус «-», т.е. так [^a-zA-Z0-9_-]. Но внутри скобок он означает диапазон. Как быть?
*Не диапазон \-

=> http://javascript.ru/basic/regular-expression+
Ответить с цитированием
  #5 (permalink)  
Старый 30.05.2012, 15:53
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Сообщение от Amphiluke
Экранировать бэкслешем. Хотя символ «-» в конце группировки [], вроде, правильно интерпретируется, и без экранирования
в конце не уверен, в начале да, при условии, что это не отрицающие скобки. А вообще [^-\W] достаточно в вашем случае. Оно эквивалентно [^-A-Za-z0-9_].

короче я попутал, но истина где-то рядом. Голова болит, ничего не соображает...

правильный ответ: [^-\w]
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук

Последний раз редактировалось nerv_, 30.05.2012 в 16:09.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Регулярное, замена в строке mico Общие вопросы Javascript 1 13.09.2011 22:13
Заменить символы в строке, затем преобразовать строку в html majahead jQuery 2 03.03.2011 16:52
Русские символы в строке адреса parzh-junior Элементы интерфейса 1 11.04.2010 19:12
Заменить символы в строке artlayers jQuery 5 17.03.2010 18:54
требуется удалить символы (')' '(' ';') в строке har.Storm Общие вопросы Javascript 6 24.07.2009 19:09