Почему браузер показывает другую обратную косую черту для регулярного выражения проверки электронной почты. Как это предотвратить?
У меня есть этот шаблон в файле JS:
var emailPattern = /^[^\W_](\.{0,1}[^<>(){\}[\]\\.,;:%\s@\"]+)*@([a-zA-Z0-9-]{1,}\.)+[a-zA-Z]{2,6}$/;
Пока страница загружена, я получаю это в виде источника,
var emailPattern = /^[^\W_](\.{0,1}[^<>(){\}[\]\\.,;:%\s@\"]+)*@([a-zA-Z0-9-]{1,}\.)+[a-zA-Z]{2,6}$/;
(Эта страница специфична для японского языка, но js написана простым английским языком).
Во всяком случае, чтобы \ (обычная обратная косая черта) не стала такой \ (Юникод: \
)
3 ответа
Это похоже на проблему кодировки символов.
Например, при редактировании файлов в кодировке Shift-JIS в SubEthaEdit обратные слеши отображаются как \
(0x5C) в редакторе, но фактически вставляются как \
(0xFF3C) в файле.
Копирование исходного кода из редактора преобразует его обратно в UTF-8 и дает мне "нормальную" обратную косую черту в буфере обмена.
Обходной путь в SubEthaEdit будет заключаться в ¥
символ, который 0x5C в Shift-JIS.
Все это относится к SubEthaEdit, но, возможно, вы столкнулись с аналогичной проблемой.
Подумайте о вашем редакторе и политике браузера:
- Первая линия: Консолас 10
- Вторая строка: MS Mincho 10
Скопируйте строку кода в блокнот, а затем скопируйте ее обратно в код. Это уничтожит ваши символы Unicode и превратит обратную косую черту в настоящую обратную косую черту.