Почему браузер показывает другую обратную косую черту для регулярного выражения проверки электронной почты. Как это предотвратить?

У меня есть этот шаблон в файле 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 написана простым английским языком).

Во всяком случае, чтобы \ (обычная обратная косая черта) не стала такой \ (Юникод: &#65340;)

3 ответа

Это похоже на проблему кодировки символов.

Например, при редактировании файлов в кодировке Shift-JIS в SubEthaEdit обратные слеши отображаются как \ (0x5C) в редакторе, но фактически вставляются как (0xFF3C) в файле.

Копирование исходного кода из редактора преобразует его обратно в UTF-8 и дает мне "нормальную" обратную косую черту в буфере обмена.

Обходной путь в SubEthaEdit будет заключаться в ¥ символ, который 0x5C в Shift-JIS.

Все это относится к SubEthaEdit, но, возможно, вы столкнулись с аналогичной проблемой.

Подумайте о вашем редакторе и политике браузера:

  • Первая линия: Консолас 10
  • Вторая строка: MS Mincho 10

Скопируйте строку кода в блокнот, а затем скопируйте ее обратно в код. Это уничтожит ваши символы Unicode и превратит обратную косую черту в настоящую обратную косую черту.

Другие вопросы по тегам