1. 程式人生 > >正則匹配那些事(二)

正則匹配那些事(二)

寫一個方法實現對對使用者輸入的主機姓名進行校驗,校驗規則如下:

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>