javascript中正则匹配多个条件, 常用正则匹配
注意: 本篇文章是根据在下日常编码过程中逐渐丰富的, 越往后看, 收获越丰富, 收藏起来以后随时回顾
准备工作
1, 汉字和unicode码的在线转换网址
http://tool.chinaz.com/tools/unicode.aspx
2, 正则在线生成地址
http://tools.jb51.net/regex/create_reg
正则表达式常用方法
截图来自:: https://www.w3school.com.cn/jsref/jsref_obj_regexp.asp
实现
目标: 把 “2021年10月29日 12:43:46” 中, ‘年’和’月’替换为’-', '日’替换为 ’ '
1, 常用替换方法实现
let str= "2021年10月29日 12:43:46";
str = str.replace("年","-")
str = str.replace("月","-")
str = str.replace("日","")
console.log(str)
2, 替换为 js正则 + unicode编码 实现
let str= "2021年10月29日 12:43:46";
str = str.replace(/[\u5e74]/g,"-")
str = str.replace(/[\u6708]/g,"-")
str = str.replace(/[\u65e5]/g,"")
console.log(str)
3, 简略写法, 一行搞定
let str= "2021年10月29日 12:43:46";
str = str.replace(/[\u5e74]|[\u6708]/g, "-").replace(/[\u65e5]/g, "")
"2021年10月29日 12:43:46".replace(/[\u5e74]|[\u6708]/g, "-").replace(/[\u65e5]/g, "")
console.log(str)
str = '2021年11月12日';
str = str.replace(/[\u5e74\u6708\u65e5]/g,function(a){
switch(a){
case '年':
return '-';
case '月':
return '-';
case '日':
return '';
}
});
console.log(str);
其他的常用正则匹配
/0?(13|14|15|16|17|18|19)[0-9]{9}/.test('13233333333')
/[0-9-()()]{7,18}/.test('4908595')
/\w[-\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\.)+[A-Za-z]{2,14}/.test('21111111111@qq.com')
/\d{4}(\-|\/|.)\d{1,2}\1\d{1,2}/.test('2011-11-11')
/\d{6}/.test('100000')
/\d{17}[\d|x]|\d{15}/.test('14152320111111503X')
/[\u4e00-\u9fa5]/.test('文字文字')
/^[\u4e00-\u9fa5]+$/i.test("中文中文")
^[0-9]*$
^\d{n}$
^\d{n,}$
-n位的数字:^\d{m,n}$
^(0|[1-9][0-9]*)$
^[0-9]+(.[0-9]{2})?$
-3位小数的正实数:^[0-9]+(.[0-9]{1,3})?$
^\+?[1-9][0-9]*$
^\-[1-9][0-9]*$
+ 0) ^\d+$
+ 0) ^((-\d+)|(0+))$
^.{3}$
^[A-Za-z]+$
^[A-Z]+$
^[a-z]+$
^[A-Za-z0-9]+$
^\w+$
:^[a-zA-Z]\w{5,17}$ 正确格式为:以字母开头,长度在6-18之间,只能包含字符、数字和下划线。
^%&',;=?$\" 等字符:[^%&',;=?$\x22]+
^[\u4e00-\u9fa5],{0,}$
^\d{15}|\d{}18$
^(0?[1-9]|1[0-2])$ 正确格式为:“01”-“09”和“1”“12”
^((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+)?$
详解
1, 正则方法
'123'.replace(/1/,"2");
123'.replace(/1/,"2").replace(/3/,"4");// '224'
/[0-9]/.test('23') 或者 /^[0-9]/.test('23')
/[0-9]$/.test('23')
/^[0-9]+$/.test('23')
'1abcd12----123'.match(/[1-9]/g)
'1abcd12....123----1234'.match(/[1-9]+/g)
'a1234aB....abC----Abcd'.match(/[a-zA-Z]+/g)
2, 正则判断和替换
/1/.test('1')
/123/.test('123')
/^[0-9]+$/.test('23')
/^[a-zA-Z]+$/.test('ABCabc')
/^[a-z]+$/.test('abc')
/^[A-Z]+$/.test('ABC')
'23'.replace(/[0-9]/g,"")
'abcdABCD'.replace(/[a-zA-Z]/g,"")
'abcd'.replace(/[a-z]/g,"")
'ABC'.replace(/[A-Z]/g,"")
var i = 0;
'123456789'.replace(/[1-9]/g, a=> { return (i++ < 2) ? "-" : a; })
'12abcd23'.match(/[1-9]?/g)
'12abcd23'.match(/[1-9]*/g)
'12abcd23'.match(/[1-9]+/g)
'12abcd23'.match(/[1-9]{2}/g)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)