Как работает регулярное выражение `new RegExp (" user = "+ un +" [\ "'\\ s>]", "i") `? - PullRequest
1 голос
/ 11 марта 2010

Я - Javascript Junkie и хочу проверить некоторые коды.

new RegExp("user=" + un + "[\"'\\s>]", "i")

что это будет на самом деле означать?

Это было с сайта, и оно действительно работает!

Я особенно не понимаю [\"'\\s>] часть.

Ответы [ 3 ]

4 голосов
/ 11 марта 2010

[\"'\s>] означает любой из следующих символов: "'пробел>

Таким образом, если un = "abc" ваше регулярное выражение будет соответствовать любому из следующих:

user=abc"
user=abc'
user=abc  // There is a space after abc.
user=abc>
4 голосов
/ 11 марта 2010

[ и ] означают класс символов . По сути, он будет соответствовать одному из любых символов, найденных внутри. Обратная косая черта \ экранирует специальные символы . Таким образом, вы увидите, что первая двойная кавычка экранирована, показывая, что мы ищем символ " внутри значения, а не просто используем " в нашем регулярном выражении для обтекания значения. Затем рассматривается одиночная кавычка ', за которой следует обратная косая черта (буквально - поэтому ее тоже нужно экранировать \\ ищет одну обратную косую черту). Похоже, что оригинал указывал на пробел, который равен \s. И тогда символ больше чем.

1 голос
/ 11 марта 2010
[\"'\\s>] 

представляет класс char, содержащий 4 вещи: двойную кавычку, одинарную кавычку, \s и >. Это соответствует одному из этих четырех раз. \s, в свою очередь, может означать одно пустое пространство, которое может появиться из пробела, табуляции, новой строки, возврата каретки.

Дополнительные \, которые вы видите, предназначены для побега.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...