Я использую следующее регулярное выражение для проверки по электронной почте:C# регулярное выражение не работает в Javascript
^[a-zA-Z0-9!$'*+/\-_#%?^`&=~}{|]+(\.[a-zA-Z0-9!$'*+/\-_#%?^`&=~}{|]+)*@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-['&_\]]]+)(\.[\w-['&_\]]]+)*))(\]?)$
Это отлично работает в C#, но в JavaScript, его не работает .... и да, я заменил каждый обратная косая черта с двойной обратной косой чертой:
^[a-zA-Z0-9!$'*+/\\-_#%?^`&=~}{|]+(\\.[a-zA-Z0-9!$'*+/\\-_#%?^`&=~}{|]+)*@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.)|(([\\w-['&_\\]]]+)(\\.[\\w-['&_\\]]]+)*))(\\]?)$
Я использую XRegExp. Я что-то упустил? Есть ли такие вещи, как конвертер для преобразования нормального регулярного выражения на JavaScript, возможно, :)?
Вот моя функция:
function CheckEmailAddress(email) {
var reg = new XRegExp("^[a-zA-Z0-9!$'*+/\\-_#%?^`&=~}{|]+(\\.[a-zA-Z0-9!$'*+/\\-_#%?^`&=~}{|]+)*@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.)|(([\\w-['&_\\]]]+)(\\.[\\w-['&_\\]]]+)*))(\\]?)$")
if (reg.test(email) == false) {
return false;
}
return true;
}
Это возвращает ложь для простого "[email protected]" адрес электронной почты.
Заранее благодарен!
Кевин
Ускорение обратного слэша означает, что вы соответствуете буквальному '' '... JS regex's очень похожи на регулярное выражение PCRE, но немного _easier_. Вы не должны проверять адреса электронной почты с помощью регулярных выражений. Этого не может быть сделано ... никому не удалось проверить действительные адреса электронной почты с помощью одного регулярного выражения ... О, и почему вы используете XRegExp, а не простое регулярное выражение? –
Как еще вы считаете, я проверяю формат электронной почты на стороне клиента? –
У вас нет. Вы _can_ выполните некоторую базовую проверку (например: содержит ли вход знак '@'), но выполняется проверка данных _server-side_ –