正則匹配那些事(二)
阿新 • • 發佈:2019-01-11
寫一個方法實現對對使用者輸入的主機姓名進行校驗,校驗規則如下:
1.只能輸入中文、英文、空格和一個/(/必須出現在英文姓和名之間,有中文就不能包含/和空格,且中文必須在英文前面,純中文最長10個漢字)
2.長度在2至28個字元之間,1個漢字按照2個字元算
3.方法返回true表示驗證通過,否則返回false
這裡涉及到中因為混合匹配長度的問題,暫時沒有找到更好的方案 現在是先判斷長度 再進行匹配的
<div> <input placeholder="請輸入姓名" id="name" type="text" value=""> <span id="btn" class="btn" >校驗</span> </div> <script> (function () { function verify(){ var isQualified = false; var name =document.getElementById("name").value; var len = name.replace(/[^\x00-\xff]/g,"aa").length; if(len>28){ //首先判斷字元長度 return isQualified; } //匹配中文或者英文 var reg = /(^[a-z\/A-Z]{2,28}$)|(^[\u4e00-\u9fa5a-zA-Z]{2,28})$/; isQualified = reg.test(name); //之匹配中文 var zwReg = /[\u4e00-\u9fa5]{1,10}$/; var isZw = zwReg.test(name); return isQualified||isZw; } document.getElementById('btn').addEventListener('click',function () { console.log(verify()); }); })(); </script> </body>