Как я могу преобразовать строку в регулярное выражение ехр правильное регулярное выражение ехр
у меня есть приведенный ниже JS код для проверки электронной почты
функция testMatch() {
var current = $(document). find ('#txtbox');
var ccount = 0;
var vcode = "/^[a-z0-9\_\-\.]+[\@]{1}[a-z0-9]+[\.]{1}[a-z]{2,}/i" /*это значение фактически исходит из запроса json*/
значение var = "useremail@gmail.com";
если (значение != неопределенные и усилитель; & значения != нуль &амп;&амп; значение != ") {
var res = value. match(vcode);
if (res = = null) {
США(по текущим).добавление('см-форме данныеоткройте-errorrow');
аккаунт++;
} еще {
$(current). removeClass ('cm-dataform-errorrow');
}
} еще {
США(по текущим).добавление('см-форме данныеоткройте-errorrow');
аккаунт++;
}
}
строка регулярного выражения извлекается из ajax-запроса.
поскольку регулярное выражение exp является строкой, функция match () не работает.
Как преобразовать строку regex exp в правильное регулярное выражение exp, которое может проверить ввод данных здесь.
Что я уже пробовал:
Я пробовал использовать методы Test(), exec() регулярных выражений
Wessel Beulink
/^[a-z0-9\_\-\.]+[\@]{1}[a-z0-9]+[\.]{1}[a-z]{2,}/i это также не является действительной проверкой почты. из-за новых доменов: .black и т. д.
Microsoft рекомендует следующее регулярное выражение:
@"^(?("")("".+?(?<!\\)""@)|(([0-9a-z]((\.(?!\.))|[-!#\$%&'\*\+/=\?\^`\{\}\|~\w])*)(?<=[0-9a-z])@))" + @"(?(\[) (\[(\d{1,3}\.){3}\d{1,3}\])|(([0-9a-z] [- \w]*[0-9a-z]*\.)+[a-z0-9] [\- a-z0-9]{0,22}[a-z0-9]))$"
См. эту статью: https://msdn.microsoft.com/en-us/library/01escwtf(v=vs. 110).aspx?cs-save-lang=1&cs-lang=csharp#code-snippet-1
Но я должен просто проверить @ in со строкой.Содержать('@'). Вы также можете проверить наличие точки.