正则:个人使用和踩坑收集
具体使用场景
1 以任意长度分割字符创
var arr = str.split(/\s+/)
2 将三列的表格数据转换成相应的表格html字符串
(前提将表格字符串通过word转成‘xx xxx xx;xxx xx xx;xx xx xx;’的格式)
var arr = str.split(";"); var text = ""; for (var x in arr) { var arr2 = arr[x].split(/\s+/); var str2 = "<tr><td>" + arr2[0] + "<td><td>" + arr2[1] + "<td><td>" + arr2[2] + "<td><tr>"; text += str2; }
表格例子:
3 金额
reg = /^([1-9]\d*)(\.\d*)?$/;
4 禁止输入emoji表情
let reg = /[^\u0020-\u007E\u00A0-\u00BE\u2E80-\uA4CF\uF900-\uFAFF\uFE30-\uFE4F\uFF00-\uFFEF\u0080-\u009F\u2000-\u201f\u2026\u2022\u20ac\r\n]/g; if (text.match(reg)) { text = text.replace(reg, ''); }
5 身份证号码
/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
6 匹配2-6个中文
/^[\u4E00-\u9FA5]{2,6}$/;
7 不以某个字符串开头的表示(例如 不以typedef 开头)
/^(?!typedef)/
8 用这个匹配当前文件的所有打的console.log 然后一次性删除
[\s\S]*?console.log[\s\S]*?;
使用技巧
1 exec和match的区别
- exec每次执行的开始匹配的index都会改变,match每次都是0
- exec 是正则表达式的方法,match是字符串的方法
2 match 某个str的时候返回值里面带有匹配到的分组,但是如果reg是全局模式,那么就不会返回匹配到的分组。
3 . 和.?的区别 一个是贪婪和非贪婪匹配的问题
需要了解两者的区别可以看
https://segmentfault.com/a/11...
持续更新 TBC...
欢迎补充 欢迎建议 欢迎纠正
相关推荐
杨德龙 2020-11-11
不要皱眉 2020-10-14
满地星辰 2020-09-16
梦的天空 2020-08-25
lrjnlp 2020-07-19
qidu 2020-07-05
flyingssky 2020-07-05
flyingssky 2020-06-27
RuoShangM 2020-06-17
天高任鸟飞 2020-06-13
Darklovy 2020-06-11
qidu 2020-06-08
Darklovy 2020-06-07
jyj00 2020-06-06
flyingssky 2020-06-04
山水沐光 2020-05-26
山水沐光 2020-05-25