美文网首页
常用的正则校验

常用的正则校验

作者: 指尖轻敲 | 来源:发表于2018-11-26 10:03 被阅读0次
1-255整数正则
(25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|[1-9])
姓名(纯汉字)校验

[\u4E00-\u9Fa5]表示中文汉字。以下代码匹配2-10个汉字,如果有不是汉字的字符则返回null。如果是纯数字,则返回一个数组。第一个元素为这个纯汉字的字符串。

var name = "sd152哈2";
name.match(/^[\u4E00-\u9Fa5]{2,10}$/g)); //null

var name = "哈哈";
name.match(/^[\u4E00-\u9Fa5]{2,10}$/g)); //["哈哈"]
身份证号校验

^[0-9]{17}[0-9x]$表示以数字开头17位,加最后一位数字或X

id.match(/^[0-9]{17}[0-9x]$/i));
手机号等(纯数字)校验
//判断是纯数字
var re = /^[0-9]*[1-9][0-9]*$/
re.test("1025sds"); //false
密码等(不能包含汉字)校验

search搜索字符串中是否包含汉字,如果有返回第一个出现的下标,没有则返回-1

//判断字符串是否包含汉字
var re = /[\u4E00-\u9FA5]/;
"大大142525".search(re); //0
"sdd142525".search(re); //-1

判断有没有表情字符

isEmojiCharacter: function(substring) {
    for ( var i = 0; i < substring.length; i++) {
        var hs = substring.charCodeAt(i);
        if (0xd800 <= hs && hs <= 0xdbff) {
            if (substring.length > 1) {
                var ls = substring.charCodeAt(i + 1);
                var uc = ((hs - 0xd800) * 0x400) + (ls - 0xdc00) + 0x10000;
                if (0x1d000 <= uc && uc <= 0x1f77f) {
                    return true;
                }
            }
        } else if (substring.length > 1) {
            var ls = substring.charCodeAt(i + 1);
            if (ls == 0x20e3) {
                return true;
            }
        } else {
            if (0x2100 <= hs && hs <= 0x27ff) {
                return true;
            } else if (0x2B05 <= hs && hs <= 0x2b07) {
                return true;
            } else if (0x2934 <= hs && hs <= 0x2935) {
                return true;
            } else if (0x3297 <= hs && hs <= 0x3299) {
                return true;
            } else if (hs == 0xa9 || hs == 0xae || hs == 0x303d || hs == 0x3030
                || hs == 0x2b55 || hs == 0x2b1c || hs == 0x2b1b
                || hs == 0x2b50) {
                return true;
            }
        }
    }
}

相关文章

网友评论

      本文标题:常用的正则校验

      本文链接:https://www.haomeiwen.com/subject/drmvqqtx.html