Вершина в моем списке:
я слежу за iTunes U, поскольку некоторые курсы имеют идеальную цену (лишенную) первосортных Университетов во всем мире. Например, Разработка языка программирования из MIT.
Я думаю, что здесь могут быть полезны методы проверки адреса электронной почты и URL, например. метод электронной почты:
email: function(value, element) {
return this.optional(element) || /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i.test(value);
},
Сценарий для компиляции этого регулярного выражения .
Другими словами, замена произвольного списка символов «сумасшедшей луны» на это может помочь:
[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]
В основном это позволяет избежать проблем с кодировкой символов, которые вы иметь в другом месте, заменив символы кодирования потребностей более общими определениями. Хотя он не обязательно более удобочитаемый, пока он короче, чем ваш полный список.
Видя, как оператор работает в консоли, могло ли это быть связано с тем, как сохраняются ваши файлы .js (например, ascii или UTF-8), и что браузер загружает их таким образом и в процесс переводит символы?
Перечисленные международные символы являются частью расширенного ASCII. добавленные вами, конечно же, нет.
На самом деле это не ответ, но у меня еще нет 50 представителей, чтобы добавить комментарий ... Это определенно можно отнести к проблемам с кодировкой.
Да, "ECMA не следует" Меня не волнует кодировка ... "бла-бла, ну, если у вас firefox, перейдите в Вид> Кодировка символов> Западный (ISO-8859-1) , затем попробуйте использовать поле Имя.
Он отлично работает у меня после изменения кодировки вручную (если остальной части страницы не нравится переключатель кодировки: P)
(в IE8 вы можете перейти на страницу > Кодировка> Западноевропейская (Windows) , чтобы получить тот же эффект)
Какая кодировка символов в файле JS?
Для XML QNames я использую это RegExp:
/**
* Definition of an XML Name
*/
var NameStartChar = "A-Za-z:_\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D"+
"\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF"+
"\uF900-\uFDCF\uFDF0-\uFFFD\u010000-\u0EFFFF";
var NameChar = NameStartChar+"\\-\\.0-9\u00B7\u0300-\u036F\u203F-\u2040";
var Name = "^["+NameStartChar+"]["+NameChar+"]*$";
RegExp (Name).test (value);
Он работает как шарм также с интернационализированными символами. Обратите внимание на побег. Благодаря этому я могу ограничить JS-файл только символами ASCII . Поэтому у меня нет проблем при работе с кодировками ISO-8859 и UTF-8.
Это больше не верно, если вы используете кодировки символов, в которых ASCII не является реальным подмножеством (например, в Азии UTF-16 ).
Ура,
Используйте что-нибудь вроде Fiddler или Charles (не панель Firebug Net или что-нибудь еще, что на самом деле находится внутри браузера), чтобы проверить, что на самом деле происходит по сети. Это почти наверняка проблема с кодировкой: либо файл был сохранен в некотором наборе символов Microsoft и отправляется как UTF-8, либо, возможно, наоборот.
В случае JS RegExps вы можете, как указывает Болдевин , чтобы избежать этих проблем, укажите кодовую точку Unicode для символов, которые вам нужны, которые находятся за пределами диапазона US-ASCII. Тем не менее, было бы хорошо убедиться, что вы не путаете кодировки между местом, где файл сохраняется, и местом, где он обслуживается.
на самом деле идет по проводам. Это почти наверняка проблема с кодировкой: либо файл был сохранен в некотором наборе символов Microsoft и отправляется как UTF-8, либо, возможно, наоборот.В случае JS RegExps вы можете, как указывает Болдевин , чтобы избежать этих проблем, укажите кодовую точку Unicode для символов, которые вам нужны, которые находятся за пределами диапазона US-ASCII. Тем не менее, было бы хорошо убедиться, что вы не путаете кодировки между местом, где файл сохраняется, и местом, где он обслуживается.
на самом деле идет по проводам. Это почти наверняка проблема с кодировкой: либо файл был сохранен в некотором наборе символов Microsoft и отправляется как UTF-8, либо, возможно, наоборот.В случае JS RegExps вы можете, как указывает Болдевин , чтобы избежать этих проблем, укажите кодовую точку Unicode для символов, которые вам нужны, которые находятся за пределами диапазона US-ASCII. Тем не менее, было бы хорошо убедиться, что вы не путаете кодировки между местом, где файл сохраняется, и местом, где он обслуживается.
Чтобы избежать этих проблем, укажите кодовую точку Unicode для символов, которые вам нужны, которые находятся за пределами диапазона US-ASCII. Тем не менее, было бы хорошо убедиться, что вы не путаете кодировки между местом, где файл сохраняется, и местом, где он обслуживается. Чтобы избежать этих проблем, укажите кодовую точку Unicode для символов, которые вам нужны, которые находятся за пределами диапазона US-ASCII. Тем не менее, было бы хорошо убедиться, что вы не путаете кодировки между местом, где файл сохраняется, и местом, где он обслуживается.