Подтвердить что ты не робот

Регулярное выражение Javascript "Single Space Character"

Я изучаю javascript, и я анализирую существующие коды.

В моем справочнике JS говорится, что поиск по одному пространству использует "\s"?

Но я наткнулся на код

obj.match(/Kobe Bryant/);

Вместо использования \s используется фактическое пространство?

Почему это не вызывает ошибку?

4b9b3361

Ответ 1

Класс символов \s содержит не только пробел, но и другие символы символы пробела Юникода. \s эквивалентен этому классу символов:

[\t\n\v\f\r \u00a0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000]

Ответ 2

Нет. Совершенно законно включать литеральное пространство в регулярное выражение.

Однако он не эквивалентен - \s будет содержать любой пробельный символ, включая табуляции, неразрывные пробелы, пробелы полуширины и другие символы, тогда как буквальное пространство будет соответствовать только символу регулярного пробела.

Ответ 3

\s соответствует любому символу пробела, включая вкладки и т.д. Разумеется, вы также можете использовать буквальное пространство без проблем. Точно так же, как вы можете использовать [0-9] вместо \d для обозначения любой цифры.

Ответ 4

В дополнение к нормальным пространствам \s соответствует различным типам пробелов, включая вкладки (и, возможно, символы новой строки, в соответствии с конфигурацией). Тем не менее, сопоставление с нормальным пространством, безусловно, действительно, особенно в вашем случае, когда кажется, что вы хотите совместить имя, которое обычно разделяется нормальным пространством.