سلام و وقت بخير خدمت دوستان. من يه کد ساده براي اعتبارسنجي ايميل نوشتم که ميخوام اين شروط رو داشته باشه: کارکتر @ و . توي ايميل وارد شده وجود داشته باشه و حتما يک کارکتر . بعد از @ وجود داشته باشه علاوه بر اينکه کارکتر . ميتونه قبل از @ باشه يا نباشه. اما وجودش بعد از @ الزاميه.
شرط دوم رو لطفا راهنمايي بفرماييد چجوري بنويسم. ممنونم
کدي که نوشتم :
<body>
Enter email:
<input id="myEmail" type="text">
<button onclick="validation()">Check</button>
<h2 id="demo"></h2>
<script>
function validation() {
var myEmail = document.getElementById('myEmail').value;
var message = '';
if ( (myEmail.indexOf('@') == -1) || (myEmail.indexOf('.') == -1) ) {
message = 'your email is invalid'
} else {
message = 'your email is valid'
}
document.getElementById('demo').textContent = message;
}
</script>
</body>```
سلام
بهتره که از regex استفاده کنی
/^[a-zA-Z0-9-_]+@[a-zA-Z0-9]+.[a-zA-Z]{1,10}$/
تو جاوااسکریپت فک کنم با متد test. میشه از رجکس استفاده کرد
@JavadPakdel
سلام
کد های زیر را امتحان کنید.
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
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form>
<p>Enter an email address:</p>
<input id='email'>
<button type='submit' id='validate'>Validate!</button>
</form>
<h2 id='result'></h2>
@mohaligateway @mrn خيلي ممنونم از پاسختون. اما اين يک تمرينه و قصد استفاده توي پروژه رو ندارم. فقط اون قسمت دوم شرط رو ميخواستم پياده سازي کنم.
معمولا برای اینکه کار ساده بشه از regex استفاده میشه
function emailIsValid (email) {
return /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email)
}
emailIsValid('tyler@tyler@ui.dev') // false
emailIsValid('tyler@ui.dev') // true
اگر با ایف های تودرتو بخوای هندل کنی هم بیشتر باید کد بزنی و هم خطاهای js زیاده!
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟