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).)*/
本文介绍了多种实用的正则表达式技巧,包括时间串转换、循环累加分割符处理、手机号及座机号码验证、数值类型判断等。此外,还分享了Sublime Text中去除重复行的方法以及匹配特定字符的技巧。
3万+

被折叠的 条评论
为什么被折叠?



