常用正则表达式

去掉带左右尖括号的标签

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/  这个里面还有一些其它的表达,也可以做为参考
posted @ 2020-05-18 10:58  维维WW  阅读(230)  评论(0编辑  收藏  举报