常用正则表达式
去掉带左右尖括号的标签
string.replace(/<[^>]+>/g, "");
去空格
string.replace(/(^\s*)|(\s*$)/g, ''); //去掉首尾空格
string.replace(/\s+/g, ""); //去掉所有空格
string.replace(/(^\s*)/g, ""); //去掉前空格
string.replace(/(\s*$)/g, ""); //去掉尾空格
允许输入中英文及数字
/^([\u4E00-\uFA29]|[\uE7C7-\uE7F3]|[a-zA-Z0-9])+$/
允许输入手机号、固定电话或邮箱
/(^1(3[0-9]|4[57]|5[0-35-9]|7[3678]|8[0-9]|9[9])[0-9]{8}$)|(^(0[0-9]{2,3})?([2-9][0-9]{6,7})+(-[0-9]{1,4})?$)|(^[A-Za-z0-9]+([-_.]+[A-Za-z0-9]+)*@([A-Za-z0-9]+[-.])+[A-Za-z0-9]{2,4}$)/
密码长度为8-20位字符,可以是数字、大写字母、小写字母,以及特殊字符 ~`!@#$%^&*()_+=<>/?\|;:.,"{}[]',至少包含四类中的任意两类:
/(?!^(\d+|[a-zA-Z]+|[~!@#$%^&*?]+)$)^[\w~!@#$%^&*?]{8,20}$/
身份证正则
身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X
/(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/; ---包含15位
去掉所有的html标记
str.replace(/<\/?.+?>/g,"")
通过多种字符拆分
let str = "1+1-2*3/4"
separator = /\+|-|\*|\//;
console.log(str.split(separator));
let str = '01070321904\n\n01027360862\n\n01027039186\n\n01060378174\n01066265969\n01016261945'
separator = /\n\n|\n/;
console.log(str.split(separator));
const str = '01070321904\n\n01027360862\n\n01027039186\n\n01060378174\n01066265969\n01016261945';
const arr = str.split(/\n|\r\n/).filter(Boolean);
console.log(arr);
整数位数最多7位,最多带2位小数点
/^([0-9]{1,7})([.]\d{1,2})?$/
输入带2位小数点的正整数
/^[0-9]+([.]\d{1,2})?$/
js 经常用于条件判断 大于等于0 的正整数
/^\d+(?=\.{0,1}\d+$|$)/
输入首位为0125的9位数字
/^(0|1|2|5)+(\d{8})$/;
大于0的正数,最多一位小数,0和0.0都是不能通过的
/(^([1-9][0-9]*)+(\.[0-9]{1,1})?$)|(^[0]+(\.[1-9]{1,1})$)/
正则匹配正整数或零
/^([0]|[1-9][0-9]*)$/
请输入不能为0的正整数
/^[1-9][0-9]*$/
请输入10位或12位的数字
/^(\d{10}|\d{12})$/
正则匹配,首位为0共11位纯数字
/^(0)+(\d{10})$/
<br/>全局替换\n
let aa = "备注\n备注1\n备注2";
aa.replace(/\n/g, "<br/>")
全局替换二维数组的键名
解释:1)JSON.stringify()把json对象转成json字符串;
2)使用正则的replace()方法替换属性名;
3)JSON.parse()把json字符串又转成json对象。
data = JSON.parse(
JSON.stringify(data).replace(/stateName/g, 'text').
replace(/cityList/g, 'children').
replace(/cityName/g, 'text'));
这种要注意一下,对象的值中要保证没有相同名字的,要不然值也被替换掉了。
全局替换/
let str = '2022/6/30'
let strNew = str.replace(new RegExp("/", "g"), "-")
console.log(strNew)
基本符号:
^ 表示匹配字符串的开始位置 (例外 用在中括号中[ ] 时,可以理解为取反,表示不匹配括号中字符串)
$ 表示匹配字符串的结束位置
* 表示匹配 零次到多次
+ 表示匹配 一次到多次 (至少有一次)
? 表示匹配零次或一次
. 表示匹配单个字符
| 表示为或者,两项中取一项
( ) 小括号表示匹配括号中全部字符
[ ] 中括号表示匹配括号中一个字符 范围描述 如[0-9 a-z A-Z]
{ } 大括号用于限定匹配次数 如 {n}表示匹配n个字符 {n,}表示至少匹配n个字符 {n,m}表示至少n,最多m
\ 转义字符 如上基本符号匹配都需要转义字符 如 \* 表示匹配*号
\w 表示英文字母和数字
\W 非字母和数字
\d 表示数字
\D 非数字
\s 匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。注意 Unicode 正则表达式会匹配全角空格符。
\S 匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。
https://c.runoob.com/front-end/854/ 这个里面还有一些其它的表达,也可以做为参考