常用正则表达式

/^[\u4e00-\u9fa5]+$/.test()

匹配汉字:

[\u4e00-\u9fa5]

 

匹配姓名:

 RegName = /^[\u4e00-\u9fa5]{2,10}$/;

 

匹配在数字字母下划线以为的字符:

 /[^a-zA-Z0-9_]/.test(value)

检验密码强度

密码的强度必须是包含大小写字母和数字的组合,不能使用特殊字符,长度在8-10之间。

 

^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$

 

检测是否邮箱格式

[\\w!#$%&'*+/=?^_`{|}~-]+(?:\\.[\\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\\w](?:[\\w-]*[\\w])?\\.)+[\\w](?:[\\w-]*[\\w])?

 

匹配6位数字验证码

/^\d{6}$/.test(value)

匹配手机:

RegMobile = /^1[0-9]{10,10}$/;
或者
/^0?(13[0-9]|15[012356789]|18[0123456789]|14[57])[0-9]{8}$/
或者13、15、18开头的手机号正则表达式。(可根据目前国内收集号扩展前两位开头号码
^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\\d{8}$

匹配身份证:

egIdentityID = /^(\d{17})(\d|x|X)$/;

15位

 

^[1-9]\\d{7}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}$

18位

^[1-9]\\d{5}[1-9]\\d{3}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}([0-9]|X)$

 

简单验证身份证:

/^((1[1-5])|(2[1-3])|(3[1-7])|(4[1-6])|(5[0-4])|(6[1-5])|71|(8[12])|91)\d{4}((19\d{2}(0[13-9]|1[012])(0[1-9]|[12]\d|30))|(19\d{2}(0[13578]|1[02])31)|(19\d{2}02(0[1-9]|1\d|2[0-8]))|(19([13579][26]|[2468][048]|0[48])0229))\d{3}(\d|X|x){1}$/.test(value)

 

验证身份证:(借鉴招商银行的方法)

 <script type="text/javascript">
///身份证号码校验(只支持18位)
var RegIdentityID = /^(\d{17})(\d|x|X)$/;
function pSimpleChkUserCardID(num) {
    var icardno = num;
    var nRet = 1;
    var vErr = "";
    var area = { 11: "北京", 12: "天津", 13: "河北", 14: "山西", 15: "内蒙古", 21: "辽宁", 22: "吉林", 23: "黑龙江", 31: " 上海", 32: "江苏", 33: "浙江", 34: "安徽", 35: "福建", 36: "江西", 37: "山东", 41: "河南", 42: "湖北", 43: " 湖南", 44: "广东", 45: "广西", 46: "海南", 50: "重庆", 51: "四川", 52: "贵州", 53: "云南", 54: "西藏", 61: " 陕西", 62: "甘肃", 63: "青海", 64: "宁夏", 65: "新疆", 71: "台湾", 81: "香港", 82: "澳门", 91: "国外" };
    
    var reg = RegIdentityID;
    if (icardno.length > 0) {
        if (icardno.length < 18) {
            nRet = 2;
            vErr = "请正确输入18位身份证号码";
        } else {
            if (reg.test(icardno)) {
                var areacode = icardno.substr(0, 2);
                if (null == area[areacode] || undefined == area[areacode]) {
                    nRet = 3;
                    vErr = "请输入正确的身份证号码";
                }
                else {
                        var idcheck = checkLongUserID(icardno);
                        nRet = idcheck.nRet;
                        vErr = idcheck.Msg;
                }
            }
            else {
                nRet = 3;
                vErr = "请输入正确的身份证号码";
            }
        }
    }
    else {
        nRet = 2;
        vErr = "请输入身份证号码";
    }
    
    
    return vErr;
}

function checkLongUserID(longid) {
    var nRet = 2, msg = "", arr = [1, 0, 'X', 9, 8, 7, 6, 5, 4, 3, 2];
    var iyear = longid.substr(6, 4), imonth = longid.substr(10, 2), iday = longid.substr(12, 2);
    var datecheck = pIsValidDate(iyear, imonth, iday);

    if (1 != datecheck.nRet) {
        return { "nRet": datecheck.nRet, "Msg": "请输入正确的身份证号码" };
    }

    var a, b, c;
    a = parseInt(longid.substr(0, 1)) * 7 + parseInt(longid.substr(1, 1)) * 9 + parseInt(longid.substr(2, 1)) * 10;
    a = a + parseInt(longid.substr(3, 1)) * 5 + parseInt(longid.substr(4, 1)) * 8 + parseInt(longid.substr(5, 1)) * 4;
    a = a + parseInt(longid.substr(6, 1)) * 2 + parseInt(longid.substr(7, 1)) * 1 + parseInt(longid.substr(8, 1)) * 6;
    a = a + parseInt(longid.substr(9, 1)) * 3 + parseInt(longid.substr(10, 1)) * 7 + parseInt(longid.substr(11, 1)) * 9;
    a = a + parseInt(longid.substr(12, 1)) * 10 + parseInt(longid.substr(13, 1)) * 5 + parseInt(longid.substr(14, 1)) * 8;
    a = a + parseInt(longid.substr(15, 1)) * 4 + parseInt(longid.substr(16, 1)) * 2;
    b = a % 11;


    c = 2 == b ? longid.substr(17, 1).toUpperCase() : parseInt(longid.substr(17, 1));
    if (c == arr[b]) {
        nRet = 1;
    } else {
        nRet = 3;
        msg = "请输入正确的身份证号码";
    }

    return { "nRet": nRet, "Msg": msg };
}

function pIsValidDate(iYear, iMonth, iDay) {//验证出生年月
    var nRet = 2, msg = "";
    if (2 == iYear.length) {
        var tempyear = '20' + iYear, nNow = new Date();
        iYear = parseInt(nNow.getFullYear()) < parseInt(tempyear) ? ("19" + iYear) : tempyear;
    }

    try {
        var tempdate = new Date(iYear + '/' + iMonth + '/' + iDay);
        if (tempdate.getFullYear() != iYear || tempdate.getMonth() != (iMonth - 1) || tempdate.getDate() != iDay) {
            nRet = 3;
            msg = "日期出错";
        }
        else {
            nRet = 1;
        }
    }
    catch (e) {
        nRet = 3;
        msg = "日期出错";
    }

    return { "nRet": nRet, "Msg": msg };
}


alert(pSimpleChkUserCardID('4365242542545212121'));
    </script>

匹配四位数字 可有带2为小数点的字符:

RegCarPrice = /^\d{1,4}(\.\d{1,2})?$/

校验日期“yyyy-mm-dd“ 格式的日期校验,已考虑平闰年。

^(?:(?!0000)[0-9]{4}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)-02-29)$

 

京东商城注册页面找到的一组

 

decmal: "^([+-]?)\\d*\\.\\d+$", //浮点数
    decmal1: "^[1-9]\\d*.\\d*|0.\\d*[1-9]\\d*$", //正浮点数
    decmal2: "^-([1-9]\\d*.\\d*|0.\\d*[1-9]\\d*)$", //负浮点数
    decmal3: "^-?([1-9]\\d*.\\d*|0.\\d*[1-9]\\d*|0?.0+|0)$", //浮点数
    decmal4: "^[1-9]\\d*.\\d*|0.\\d*[1-9]\\d*|0?.0+|0$", //非负浮点数(正浮点数 + 0)
    decmal5: "^(-([1-9]\\d*.\\d*|0.\\d*[1-9]\\d*))|0?.0+|0$", //非正浮点数(负浮点数 + 0)
    intege: "^-?[1-9]\\d*$", //整数
    intege1: "^[1-9]\\d*$", //正整数
    intege2: "^-[1-9]\\d*$", //负整数
    num: "^([+-]?)\\d*\\.?\\d+$", //数字
    num1: "^[1-9]\\d*|0$", //正数(正整数 + 0)
    num2: "^-[1-9]\\d*|0$", //负数(负整数 + 0)
    ascii: "^[\\x00-\\xFF]+$", //仅ACSII字符
    chinese: "^[\\u4e00-\\u9fa5]+$", //仅中文
    color: "^[a-fA-F0-9]{6}$", //颜色
    date: "^\\d{4}(\\-|\\/|\.)\\d{1,2}\\1\\d{1,2}$", //日期
    email: "^\\w+((-\\w+)|(\\.\\w+))*\\@[A-Za-z0-9]+((\\.|-)[A-Za-z0-9]+)*\\.[A-Za-z0-9]+$", //邮件
    idcard: "^[1-9]([0-9]{14}|[0-9]{17})$", //身份证
    ip4: "^(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)\\.(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)\\.(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)\\.(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)$", //ip地址
    letter: "^[A-Za-z]+$", //字母
    letter_l: "^[a-z]+$", //小写字母
    letter_u: "^[A-Z]+$", //大写字母
    mobile: "^0?(13|15|17|18|14)[0-9]{9}$", //手机
    notempty: "^\\S+$", //非空
    password: "^.*[A-Za-z0-9\\w_-]+.*$", //密码
    fullNumber: "^[0-9]+$", //数字
    picture: "(.*)\\.(jpg|bmp|gif|ico|pcx|jpeg|tif|png|raw|tga)$", //图片
    qq: "^[1-9]*[1-9][0-9]*$", //QQ号码
    rar: "(.*)\\.(rar|zip|7zip|tgz)$", //压缩文件
    tel: "^[0-9\-()()]{7,18}$", //电话号码的函数(包括验证国内区号,国际区号,分机号)
    url: "^http[s]?:\\/\\/([\\w-]+\\.)+[\\w-]+([\\w-./?%&=]*)?$", //url
    username: "^[A-Za-z0-9_\\-\\u4e00-\\u9fa5]+$", //户名
    deptname: "^[A-Za-z0-9_()()\\-\\u4e00-\\u9fa5]+$", //单位名
    zipcode: "^\\d{6}$", //邮编
    realname: "^[A-Za-z\\u4e00-\\u9fa5]+$", // 真实姓名
    companyname: "^[A-Za-z0-9_()()\\-\\u4e00-\\u9fa5]+$",
    companyaddr: "^[A-Za-z0-9_()()\\#\\-\\u4e00-\\u9fa5]+$",
    companysite: "^http[s]?:\\/\\/([\\w-]+\\.)+[\\w-]+([\\w-./?%&#=]*)?$"

 

匹配小括号里的内容,包括中英文状态下的() ()  复制代码里的代码 肉眼看到的解析有问题

 

 

alert(/[\((][\s\S]*[\))]/.exec("华联超市(回龙观店)"))

 

匹配以name到;之间的字符

var str='name=zhangsan;expires=1;';
var reg=/\bname=[\s\S]*\b;/
alert(reg.exec(str))
\b开头字符.*?结尾字符\b

 

匹配只能输入整数或者只能带2位小数的小数

 

var /^\d+(\.\d{1,2})?$/
textReg=/^(([1-9]\d{0,9})|0)(\.\d{1,2})?$/;
或者
/^[0-9]+(\.[0-9]{1,2})?$/
正小数,正整数,0和正整数
/^[0-9]+.?[0-9]*$/;   正小数
/^(0|\+?[1-9][0-9]*)$/  0 和正整数
/^[1-9]\d*$/;//正整数
 

判断IE的版本

IE目前还没被完全取代,很多页面还是需要做版本兼容,下面是IE版本检查的表达式。

^.*MSIE [5-8](?:\\.[0-9]+)?(?!.*Trident\\/[5-9]\\.0).*$


校验IP-v4地址

 

\\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\b


校验IP-v6地址

(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))


检查URL的前缀
应用开发中很多时候需要区分请求是HTTPS还是HTTP,通过下面的表达式可以取出一个url的前缀然后再逻辑判断。

if (!s.match(/^[a-zA-Z]+:\\/\\//))
{
    s = 'http://' + s;
}


提取URL链接
下面的这个表达式可以筛选出一段文本中的URL。

 

^(f|ht){1}(tp|tps):\\/\\/([\\w-]+\\.)+[\\w-]+(\\/[\\w- ./?%&=]*)?


文件路径及扩展名校验
验证windows下文件路径和扩展名(下面的例子中为.txt文件)

 

^([a-zA-Z]\\:|\\\\)\\\\([^\\\\]+\\\\)*[^\\/:*?"<>|]+\\.txt(l)?$


提取Color Hex Codes
有时需要抽取网页中的颜色代码,可以使用下面的表达式。

 

^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$



提取网页图片
假若你想提取网页中所有图片信息,可以利用下面的表达式。

 

\\< *[img][^\\\\>]*[src] *= *[\\"\\']{0,1}([^\\"\\'\\ >]*)


提取页面超链接
提取html中的超链接。

(<a\\s*(?!.*\\brel=)[^>]*)(href="https?:\\/\\/)((?!(?:(?:www\\.)?'.implode('|(?:www\\.)?', $follow_list).'))[^"]+)"((?!.*\\brel=)[^>]*)(?:[^>]*)>


查找CSS属性
通过下面的表达式,可以搜索到相匹配的CSS属性。

^\\s*[a-zA-Z\\-]+\\s*[:]{1}\\s[a-zA-Z0-9\\s.#]+[;]{1}


抽取注释
如果你需要移除HMTL中的注释,可以使用如下的表达式。

<!--(.*?)-->


匹配HTML标签
通过下面的表达式可以匹配出HTML中的标签属性。

 

<\\/?\\w+((\\s+\\w+(\\s*=\\s*(?:".*?"|'.*?'|[\\^'">\\s]+))?)+\\s*|\\s*)\\/?>

html部分标签的匹配

a标签

<a\s+href\s*=\s*["']?([^"'\s]+)["']?>([^<]+)<\/a>

 

head标签

<head>([^>]+)<\/head>

 

img标签

<img\s[^>]*?src=['"]?([^"']+)["']?[^>]*>


匹配img标签并用a标签包裹起来,链接为img的src地址

'<p><img src="http://img.1.com/1.png" style="width: 230px;" /><img src="http://2.png" /></p>'.replace(/(<img [^>]*src=['"]([^'"]+)[^>]*>)/gi,'<a href="$2">$1</a>'));

 

去除所有的标签

console.log('<a href="http://www.test.com/cn/page/internalmsg/index.html">sfsdfsdf</a>'.replace(/<\/?[^>]*>/g,''))

去除所有script脚本,中间部分也去除

"<script[^>]*?>.*?</script >"

去除script方法2

value.replace(/<script.*?>[sS]*?</script>|s+on[a-zA-Z]{3,16}s?=s?"[sS]*?"|s+on[a-zA-Z]{3,16}s?=s?'[sS]*?'|s+on[a-zA-Z]{3,16}s?=[^ >]+/ig,"");

 

去除所有标签,只剩部分标签

"<(?!br).*?>";   //去除所有标签,只剩br
"<table[^>]*?>.*?</table>";   //去除table里面的所有内容
"<(?!img|br|p|/p).*?>";   //去除所有标签,只剩img,br,p

 

 

 

提取页面代码中所有的网址

 

var aa = document.documentElement.outerHTML.match(/(url(|src=|href=)["']*([^"'()<>[] ]+)["')]*|(http://[w-.]+[^"'()<>[] ]+)/ig).join("").replace(/^(src=|href=|url()["']*|["'>) ]*$/igm,"");

 

 

 

 

 

 

相关链接:

 

js获取url传递参数,js获取url?号后面的参数

js限制只能输入一位小数,限制第一位不能是小数

数字格式化为金额格式 (3位一个逗号隔开)如:100,000.00

 

js处理数字相关文章:

onkeyup限制输入框只能输入数字

移动端手机网站限制input只能输入数字

toFixed方法重写,toFixed四舍五入在数值很小时的精度问题

 

js处理数字保留2位小数,强制保留2位小数不够补上.00

数字格式化,格式数字保留2位小数点,格式数字自定义保留n位小数点

js数字金额大写转换

 

数字格式化相关文章:

数字格式化,格式数字保留2位小数点,格式数字自定义保留n位小数点

数字格式化为金额格式 (3位一个逗号隔开)如:100,000.00 

js 填写银行卡号时,每4个数字用空格隔开

 

js限制数字相关文章:

  

常用正则表达式

 

js限制input只能输入有效的数字,有且只有一个小数点,第一个不能为小数点

 

 

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值