HTML:Javascript регулярное выражение странное поведение
<input type="text" id="txt" value="15228868227"><button id="btn">check</button>
JavaScript:
//email
var rMail = /^[a-z0-9]+([._\\-]*[a-z0-9])*@([a-z0-9]+[-a-z0-9]*[a-z0-9]+.){1,63}[a-z0-9]+$/g;
//phone
var rPhone = /^(13[0-9]|15[0236789]|18[8|9])\d{8}$/g;
document.getElementById('btn').onclick = function(){
var sTxt = document.getElementById('txt').value;
var bMail = rMail.test(sTxt);
var bPhone = rPhone.test(sTxt);
if(bMail || bPhone){
alert('phone number or email')
};
// console.log(!rMail.test(sTxt) && !rPhone.test(sTxt));
if(!bMail && !bPhone){
alert('Neither phone number nor the emial')
};
};
При нажатии на кнопку, в первый раз результат является 'номер телефона или адрес электронной почты' — это то, что я хочу. Тогда я ничего не изменил, просто щелкнул снова, и результат: «Ни номер телефона, ни эмаль»! И если я удалил комментарии, результатом будет всегда «номер телефона или адрес электронной почты». Зачем?