JS正则表达式一些基本使用、验证、匹配、正则匹配时一个变量
js替换html标签中间的内容 <div>前端web版本:<sapn data-reg>12313</span><div>
var reg = /(?<=<span\s*data-reg\s*>).*?(?=<\/span>)/g var str = "<div>前端web版本:<span data-reg>12313</span><div>" var str1= str.replace(reg,44444) //<div>前端web版本:<span data-reg>44444</span><div>
注意这里使用的是,正则的“零宽断言”,具体可以百度一下
js验证首位必须是字母
var str = "asfg"; /^[a-zA-Z].*/.test(str);//true是,false否
匹配所有空格
var str=" ss dd ss "; str.replace(/\s+/g,'11'); console.log(str);//11ss11dd11
匹配中括号里面的东西
var str="123[你的]456[我的]789123[你的1]456[我的1]789"; var reg= /(?<=\[).*?(?=\])/g; str.match(reg)//["你的", "我的", "你的1", "我的1"]
变量形式的
var pointType = 'aa',tagName = 'b'; var reg = new RegExp(`\\[\\s*${pointType}.${tagName}\\s*\\]`) reg.test('aa.b') = false reg.test('[aa.b]') = true reg.test('[ aa.b ]') = true
匹配特殊字符串前后的内容
var blueurl= "127.0.0.1/1.txt" var reg = /([/][^/]+)$/; var blueurl = blueurl.replace(reg, "");//"127.0.0.1" var reg2 = /([^/]+)$/; var bluefile = blueurl.match(reg2)[1];//"127.0.0.1"
正则匹配时一个变量
/* *依次匹配字符串中的1234字符 */ var str1="a1b2c3d4"; var arr=[1,2,3,4]; for(var i=0;i<arr.length;i++){ var r=new RegExp(arr[i],"g");//g代表全部 str1=str1.replace(r,0) } console.log(str1);//a0b0c0d0
正则匹配小括号,中括号,大括号
var str="123{xxxx}456[我的]789123[你的]456(1389090)789"; var regex1 = /\((.+?)\)/g; // () 小括号 var regex2 = /\[(.+?)\]/g; // [] 中括号 var regex3 = /\{(.+?)\}/g; // {} 花括号,大括号 // 输出是一个数组 console.log(str.match(regex1)); console.log(str.match(regex2)); console.log(str.match(regex3));
验证ip (192.168.79.14)
ip:[ Rules.required, { pattern: /^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/, message: '请输入ip地址,格式(192.168.0.1)', trigger: 'blur'} ],
验证ip+端口(192.168.79.22:8080)
channelIp: { pattern: /^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\:([0-9]|[1-9]\d{1,3}|[1-5]\d{4}|6[0-5]{2}[0-3][0-5])$/, message: '请输入通道地址,格式(192.168.0.1:8080)', trigger: 'blur'}
验证数字:^[0-9]*$
验证n位的数字:^\d{n}$
验证至少n位数字:^\d{n,}$
验证m-n位的数字:^\d{m,n}$
验证零和非零开头的数字:^(0|[1-9][0-9]*)$
验证有两位小数的正实数:^[0-9]+(.[0-9]{2})?$
验证有1-3位小数的正实数:^[0-9]+(.[0-9]{1,3})?$
验证非零的正整数:^\+?[1-9][0-9]*$
验证非零的负整数:^\-[1-9][0-9]*$
验证非负整数(正整数 + 0) ^\d+$
验证非正整数(负整数 + 0) ^((-\d+)|(0+))$
验证长度为3的字符:^.{3}$
验证由26个英文字母组成的字符串:^[A-Za-z]+$
验证由26个大写英文字母组成的字符串:^[A-Z]+$
验证由26个小写英文字母组成的字符串:^[a-z]+$
验证由数字和26个英文字母组成的字符串:^[A-Za-z0-9]+$
验证由数字、26个英文字母或者下划线组成的字符串:^\w+$
验证用户密码:^[a-zA-Z]\w{5,17}$ 正确格式为:以字母开头,长度在6-18之间,只能包含字符、数字和下划线。
验证是否含有 ^%&',;=?$\" 等字符:[^%&',;=?$\x22]+
验证汉字:^[\u4e00-\u9fa5],{0,}$
验证Email地址:/^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/
验证InternetURL:^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$ ;^[a-zA-z]+://(w+(-w+)*)(.(w+(-w+)*))*(?S*)?$
验证电话号码:^(\(\d{3,4}\)|\d{3,4}-)?\d{7,8}$:--正确格式为:XXXX-XXXXXXX,XXXX-XXXXXXXX,XXX-XXXXXXX,XXX-XXXXXXXX,XXXXXXX,XXXXXXXX。
验证身份证号(15位或18位数字):^\d{15}|\d{}18$
验证一年的12个月:^(0?[1-9]|1[0-2])$ 正确格式为:“01”-“09”和“1”“12”
验证一个月的31天:^((0?[1-9])|((1|2)[0-9])|30|31)$ 正确格式为:01、09和1、31。
整数:^-?\d+$
非负浮点数(正浮点数 + 0):^\d+(\.\d+)?$
正浮点数 ^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$
非正浮点数(负浮点数 + 0) ^((-\d+(\.\d+)?)|(0+(\.0+)?))$
负浮点数 ^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$
浮点数 ^(-?\d+)(\.\d+)?$