Ну, вот тот, который заменяет все, что не является буквой или цифрой, и делает все это строчными, как ваш пример.
var s = "John Smith's Cool Page";
var filename = s.replace(/[^a-z0-9]/gi, '_').toLowerCase();
Объяснение:
Регулярное выражение:/[^a-z0-9]/gi
.Ну, на самом деле gi
в конце - это просто набор опций, которые используются при использовании выражения.
i
означает «игнорировать различия в верхнем / нижнем регистре» g
означает «глобальный», что на самом деле означает, что каждый матч должен быть заменен, а не только первый.
Итак, то, что мы видим, на самом деле просто [^a-z0-9]
.Давайте прочтем это шаг за шагом:
-
[
и ]
определяют «класс символов», который представляет собой список из одного символа.Если вы напишите [one]
, то это будет соответствовать 'o', 'n' или 'e'. - Однако в начале списка символов есть
^
.Это означает, что он должен соответствовать только символам , а не в списке. - Наконец, список символов
a-z0-9
.Прочитайте это как "от a до z и от 0 до 9".Это короткий способ написать abcdefghijklmnopqrstuvwxyz0123456789
.
В общем, регулярное выражение гласит: «Найдите каждую букву, которая не находится между« a »и« z »или между« 0 »и «9».