Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.10.2014, 02:36   #1
Zugelman
Пользователь
 
Регистрация: 08.04.2009
Сообщений: 50
По умолчанию спецсимволы в JS, как они работают?

Я наткнулся на плагин валидации, но мне бы хотелось его немного корректировать. Обьясните как прочитать эти кроказябы
Код:
return !(/\D/g.test(v));
или вот это:
Код:
this.value.replace('/\W|[a-z]/ig','')
мне не понятны эти слеши.. я лишь могу предположить что это экранирование, но тут что-то еще.. Обьясните что это
Zugelman вне форума Ответить с цитированием
Старый 12.10.2014, 10:09   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Это регулярное выражение.
Первое проверяет содержится ли в v только число, а второе... забыл. Кажись содержатся ли только буквы латиницы маленькие или любой неалфавитный символ.
Чтиво туточки: http://javascript.ru/basic/regular-expression+
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.10.2014, 18:13   #3
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

Вторая строчка "не рабочая", так как регулярки в JS ставятся без кавычек (с кавычками я только в ПХП видел). То есть технически эта строка выкидывает конкретно эту регулярку из текущего поля.
Сама по себе регулярка (если без кавычек) выкидывает все, кроме цифр и подчеркивания.
В других ЯП она может работать по-другому, так как \W означает "Любой символ, кроме буквенного или цифрового символа или знака подчёркивания" и может включать не только латинский алфавит, который не перекроется набором [a-z] и результат будет включать, к примеру, кирилицу.
Alar, верни репу!
Naive вне форума Ответить с цитированием
Старый 12.10.2014, 21:19   #4
Zugelman
Пользователь
 
Регистрация: 08.04.2009
Сообщений: 50
По умолчанию

Спасибо) Вроде разобрался)) второй пример я взял с какого-то форума она как пример. но первый с рабочего кода.
если я хочу добавить круглые скобки к данному набору то можно так?
Код:
return !(/\D//\)//\(\g.test(v));
И еще вопрос: следующий код эквивалентен?
Код:
return !(/\D//\)//\(\g.test(v));
//и
return (^/\D//\)//\(\g.test(v));
Zugelman вне форума Ответить с цитированием
Старый 13.10.2014, 01:35   #5
Fenex
Форумчанин
 
Аватар для Fenex
 
Регистрация: 15.02.2012
Сообщений: 823
По умолчанию

Цитата:
если я хочу добавить круглые скобки к данному набору то можно так?
Код:
return !(/[\(\)\D]/g.test(v));
Заострю внимание, что эта регулярка /[\(\)\D]/ проверяет на наличие хотя бы одной круглой скобки ИЛИ хотя бы одного символа, соответствующего условию "Любой символ, кроме буквенного или цифрового символа или знака подчёркивания".

Цитата:
И еще вопрос: следующий код эквивалентен?
В каком-то смысле - да, они эквивалентны. Оба с синтаксической ошибкой и оба не заведутся.
^-.-^ My GitHub

Последний раз редактировалось Fenex; 13.10.2014 в 01:39.
Fenex вне форума Ответить с цитированием
Старый 13.10.2014, 11:14   #6
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

Цитата:
Сообщение от Fenex Посмотреть сообщение
Заострю внимание, что эта регулярка /[\(\)\D]/ проверяет на наличие хотя бы одной круглой скобки ИЛИ хотя бы одного символа, соответствующего условию "Любой символ, кроме буквенного или цифрового символа или знака подчёркивания".
\D - это "не цифра".
Alar, верни репу!
Naive вне форума Ответить с цитированием
Старый 13.10.2014, 17:35   #7
uberchel
Участник клуба
 
Аватар для uberchel
 
Регистрация: 19.01.2009
Сообщений: 1,455
По умолчанию

Цитата:
Сообщение от Naive Посмотреть сообщение
\D - это "не цифра".
Эта регулярка проверяет на любой первый символ если это не цифра, любой и Fenex , подчеркивание тоже.
По сути, в этой регулярке скобки не нужны, так как спецсимвол D работает со всеми символами кроме цифр.

Вторая строчка "не рабочая", так как регулярки в JS ставятся без кавычек (с кавычками я только в ПХП видел).

В js есть работа и с кавычками в конструкторе RegExp.
uberchel вне форума Ответить с цитированием
Старый 14.10.2014, 01:54   #8
Fenex
Форумчанин
 
Аватар для Fenex
 
Регистрация: 15.02.2012
Сообщений: 823
По умолчанию

Ах, вы правы товарищи
^-.-^ My GitHub
Fenex вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
установили на сайт счетчики, а они почему то не работают termit-18 Помощь студентам 5 26.05.2013 04:35
Расскажите кто работал или работает, что конкретно оптимизаторы делают? Ol'ga Общие вопросы Web 13 26.04.2013 00:28
Компьютерный AI в играх. Боты - как они работают? Человек_Борща Общие вопросы по программированию, компьютерный форум 63 03.01.2012 23:13
События и делегаты в C# как они работают _PROGRAMM_ Общие вопросы .NET 11 04.02.2010 06:44
спецсимволы utf8 sergsam1 HTML и CSS 25 29.01.2009 16:21