原创

【正则助我,事半功倍】好用的几个正则

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://localhost01.blog.csdn.net/article/details/88820701

1、时间串转时间

var str = "20170818102656"; //这种时间串,有时总能遇到。还可能是其他的,如2017.08.18 10:26:56
str = str.replace(/^(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/g,"$1/$2/$3 $4:$5:$6");
var date = new Date(str); 

2、恶心的循环累加分割符

var str = "a,b,c,d,e,"; //有时间循环拼接分隔符,总会恶心地出现:开头多一个分隔符,或者结尾多一个分隔符
//去除结尾的分隔符
str = str.replaceAll(",$", "");
//去除开头的分隔符
str = str.replaceAll("^,", "");  

3、判断是否为手机号或座机号码

//手机号或座机号码
/(^1[34578]\d{9}$)|(^0\d{2,3}-?\d{7,8}$)/   

//单手机号
^1[34578]\d{9}$  

//单电话号码
^0\d{2,3}-?\d{7,8}$ 

4、判断数值类型,包括整数和浮点数

 /^[-\+]?\d+(\.\d+)?$/

5、匹配QQ号码

 /^[1-9]\d{4,12}$/

6、字符验证,只能包含中文、英文、数字、下划线等字符

 /^[a-zA-Z0-9\u4e00-\u9fa5-_]+$/

7、匹配中文

//匹配汉字
 /[\u4e00-\u9fa5]+/
 
//包括汉字和中文符号
 /[\u0391-\u9fa5\ufe30-\uffa0]+/

8、『sublime常用』只保留IP和端口

Find What: (\d{0,3}\.\d{0,3}\.\d{0,3}\.\d{0,3})\s*(\d{0,4})\s*
Replace With: $1:$2\n

9、『sublime常用』去重复行

方法一:先排序(sublime中,全选,F9排序),然后正则替换

Find What: ^(.+)$[\r\n]^\1$[\r\n]
Replace With: $1\n

原理很简单,排序后,重复行将会紧靠,然后进行替换。注意:\1即表示之前括号捕获的内容。

方法二:无需排序,直接使用正则(因为有时我们不想让某些固定格式变化)

Find What: ^(.*)$^(?=[\s\S]*\1)$
Replace With:

解释:

//匹配任意一行
^(.*)$ 

//匹配另外任意位置的一行,但这一行必须是任意内容(也包括无内容)后面跟\1,而这样就表示了要匹配相同两行
^(?=[\s\S]*\1)$

10、『少见但实用』匹配非某个字符

^ 符号用在 [ ] 中,表示 非[]内的任意一个字符

//匹配除开 -、+、a 之外的任意字符串
/[^-\+a]*/

11、『少见但实用』匹配非某个字符串

?! 符号用在 () 中,表示 非()内的字符串

//匹配除单词 win 外的的其它任意字符串
/((?!win).)*/
0 个人打赏
文章最后发布于: 2019-03-26 15:02:36
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 数字20 设计师: CSDN官方博客

打赏

冉椿林博客

“你的鼓励将是我创作的最大动力”

5C币 10C币 20C币 50C币 100C币 200C币

分享到微信朋友圈

×

扫一扫,手机浏览