function ok_mail($mail){
if (!preg_match("/^[a-zA-Z0-9._-]+@[gmail,hotmail.yahoo]+.[com,net,org,tv]{2,5}$/", $mail)){
exit("this not mail");
}
}
ربما يكون استخدام التعبيرات النمطية هو أفضل طريقة. يمكنك مشاهدة مجموعة من الاختبارات هنا (مأخوذة من الكروم).
function validateEmail(email) {
const re = /^(([^<>()\[\]\\.,;:\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,}))$/;
return re.test(String(email).toLowerCase());
}
فيما يلي مثال على التعبير العادي الذي يقبل الترميز الموحد:
const re = /^(([^<>()\[\]\.,;:\s@\"]+(\.[^<>()\[\]\.,;:\s@\"]+)*)|(\".+\"))@(([^<>()[\]\.,;:\s@\"]+\.)+[^<>()[\]\.,;:\s@\"]{2,})$/i;
لكن ضع في اعتبارك أنه لا ينبغي للمرء أن يعتمد فقط على التحقق من صحة JavaScript. يمكن بسهولة تعطيل JavaScript. يجب التحقق من صحة ذلك من جانب الخادم أيضًا.
فيما يلي مثال على ما ورد أعلاه عمليًا:
function validateEmail(email) {
const re = /^(([^<>()[\]\\.,;:\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,}))$/;
return re.test(email);
}
function validate() {
const $result = $("#result");
const email = $("#email").val();
$result.text("");
if (validateEmail(email)) {
$result.text(email + " is valid :)");
$result.css("color", "green");
} else {
$result.text(email + " is not valid :(");
$result.css("color", "red");
}
return false;
}
$("#validate").on("click", validate);
كود HTML
<form>
<p>Enter an email address:</p>
<input id='email'>
<button type='submit' id='validate'>Validate!</button>
</form>
<h2 id='result'></h2>
التعليقات