Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Ругулярные выражения как исключить символ "\" (https://javascript.ru/forum/misc/50410-rugulyarnye-vyrazheniya-kak-isklyuchit-simvol-%5C.html)

Tek 25.09.2014 10:50

Ругулярные выражения как исключить символ "\"
 
Подскажите почему проходит символ \ ?
var reg = /^[А-Яа-яёЁA-Za-z0-9.,!?()\s+:;-]+$/;
console.log(reg.test(" \ "));

skrudjmakdak 25.09.2014 10:56

поправил
var reg = /^[А-Яа-яёЁA-Za-z0-9.,!?()\s+:;-]+$/;
console.log(reg.test('\\'));

Aetae 25.09.2014 11:02

Tek, потому что этого символа нет. Есть пробел и экранированный пробел(===пробел), т.е. 2 пробела.
console.log(" \ ");

Tek 25.09.2014 11:03

Цитата:

Сообщение от skrudjmakdak (Сообщение 332197)
поправил
var reg = /^[А-Яа-яёЁA-Za-z0-9.,!?()\s+:;-]+$/;
console.log(reg.test('\\'));

Эм ругулярка то осталось прежней...

Tek 25.09.2014 11:05

Цитата:

Сообщение от skrudjmakdak (Сообщение 332197)
поправил
var reg = /^[А-Яа-яёЁA-Za-z0-9.,!?()\s+:;-]+$/;
console.log(reg.test('\\'));

Цитата:

Сообщение от Aetae (Сообщение 332198)
Tek, потому что этого символа нет. Есть пробел и экранированный пробел(===пробел), т.е. 2 пробела.
console.log(" \ ");

ясно, спасибо

skrudjmakdak 25.09.2014 11:05

Цитата:

Сообщение от Tek (Сообщение 332199)
Эм ругулярка то осталось прежней...

дело не в регулярке, а в строке. вам уже сказали. что у вас 2 пробела. а в регулярке указывается что надо пробелы включать в поиск, вот он вам и находит

WorM32 25.09.2014 11:07

Потому что \ экранирует символ следующий за ним, в данном случае пробел. Пробел разрешен в регулярке, следовательно - true;


Часовой пояс GMT +3, время: 11:32.