常用语法/技巧/注意
注意:
- ^符号在开头,则表示是什么开头。而在其他地方是指非
实现一个不包含某个字符的正则
- 可利用
?!是负向零宽断言:(?!exp): 断言此位置的后面不能匹配表达式 exp
负向零宽断言:用来匹配不应该出现在某个位置的模式
^((?!abc).*)$ // 不包含abc
- 可利用
^符号- ^符号在开头,则表示是什么开头。而在其他地方是指非
^[^abc]*$ // 不包含abc
匹配重复数字
-
匹配如1111、2222、3333这样的4位长度的重复数字,突一想,这不用
\d{4}就解决了嚒,其实不然,因为\d{4}可以匹配1111,但也可以匹配1234啊# 匹配重复数字(\d)\1{3}\d匹配第一个数字,后面的\1匹配前面\d匹配的内容,重复3次,这样就可以匹配1111或2222这样的4位数字串了
只含有字母、中文、数字、下划线,32个字符
- 4-32符之间
/^[a-zA-Z0-9_\u4e00-\u9fa5]{4,32}$/
正整数
大于0的正整数
/^[1-9][0-9]*$/ // 大于0的正整数
大于1的正整数
/^(([1-9]\d+)|([2-9]))$/ // 大于1的正整数
0-100的正整数
/^((\d|[1-9]\d)|100)$/ // 0-100的正整数
小数点保留2位/1位
- 小数点包含2位,包含0
/^(0|(0{1}\.\d{1,2})|([1-9]\d*\.{1}\d{1,2})|([1-9]+\d*))$/
- 匹配0-100之间保留两位小数,包含100,不含100.xx
/^((\d|[1-9]\d)(?:\.\d{1,2})?|100)$/
- 匹配0-100之间保留一位小数,包含100,不含100.x
/^((\d|[1-9]\d)(?:\.\d{1})?|100)$/
- 匹配0-100之间保留一位小数,包含100,100.0
/^((\d|[1-9]\d)(?:\.\d{1})?|100|100.0)$/
不能以中横线、api、boot结尾
- 主要是用到了先行断言和后行断言
/((?<!boot)(?<!api)(?<!-))$/.test("aaboot")
去掉字符串前面的0
str.replace(/\b(0+)/gi,"")