如何使用正则表达式进行电子邮件控制和自定义域控制?
How can I do both email control and custom domain control with regex?
我想检查输入表单域的文本。文本必须是有效的电子邮件,并且不应包含“@”和“.”之间的特定域。符号。我如何使用正则表达式来做到这一点?例如,我想要一封不应包含 "test" 域
的电子邮件
mail@mail => Invalid
mail@test.com => Invalid (Because contain 'test' domain)
mail@mail.com => Valid
HTML
<form>
<input type="text" id="email">
<button type="submit" id="sendMail">Send</button>
</form>
我可以处理具有以下模式的有效电子邮件:
JS
const btn = document.getElementById('sendMail');
btn.addEventListener('click', (e) => {
e.preventDefault();
const emailPtrn = /^(([^<>()\[\]\.,;:\s@"]+(\.[^<>()\[\]\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
const email = document.getElementById('email');
alert(emailPtrn.test(email.value));
});
如何用单一模式检查这个?
只需在您当前的正则表达式中的 @
之后添加 (?!test\.)
负面展望,
^(([^<>()\[\]\.,;:\s@"]+(\.[^<>()\[\]\.,;:\s@"]+)*)|(".+"))@(?!test\.)((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$
^^^^^^^^^^ This will reject any email if what follows immediately after @ is test.
我想检查输入表单域的文本。文本必须是有效的电子邮件,并且不应包含“@”和“.”之间的特定域。符号。我如何使用正则表达式来做到这一点?例如,我想要一封不应包含 "test" 域
的电子邮件mail@mail => Invalid
mail@test.com => Invalid (Because contain 'test' domain)
mail@mail.com => Valid
HTML
<form>
<input type="text" id="email">
<button type="submit" id="sendMail">Send</button>
</form>
我可以处理具有以下模式的有效电子邮件:
JS
const btn = document.getElementById('sendMail');
btn.addEventListener('click', (e) => {
e.preventDefault();
const emailPtrn = /^(([^<>()\[\]\.,;:\s@"]+(\.[^<>()\[\]\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
const email = document.getElementById('email');
alert(emailPtrn.test(email.value));
});
如何用单一模式检查这个?
只需在您当前的正则表达式中的 @
之后添加 (?!test\.)
负面展望,
^(([^<>()\[\]\.,;:\s@"]+(\.[^<>()\[\]\.,;:\s@"]+)*)|(".+"))@(?!test\.)((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$
^^^^^^^^^^ This will reject any email if what follows immediately after @ is test.