正则表达式

137 阅读1分钟

元字符和修饰符

//常用元字符
* 零次到多次
+  一次到多次
? 零次或者一次
{n}  出现n此
{n,} 出现n到多次
{n,m}  出现 n到 m次
//特殊元字符,单个或者组合代表特殊含义
\  转意字符 (普通->特殊->普通)
.  除\n 换行符以外的任意字符
^  以哪个元字符作为开始
$  以哪个元字符作为结束
\n  换行符
\d  0~9之间的一个数字
\D  非数字
\w  数字 字母 下划线 中的任意一个字符
\W 非数字 字母 下划线
\s  一个空白字符(包含空格制表符换页符)
\t  一个制表符(一个tab键:四个空格键)
\b 匹配一个单词边界
x|y  x或者y中的一个
[xyz] x或者y或者z中的一个
[^xy] 除了xy意外的任意字符
[a-z] 指定a-z之间的任意字符 [0-9a-zA-Z_]===\w
[^a-z]a-z
()  正则中的分组
(?:) 只匹配不捕获
(?=) 正向预查
(?!)  负向预查
//修饰符,正则表达式常用的修饰符:img
i => ignoreCase 忽略大小写
m => multiline  可以进行多行匹配
g => global  全局匹配

**只允许输入数字(整数:小数点不能输入)**\
<input type="text" onkeyup="value=value.replace(/[^\d]/g,'')" > \
**允许输入小数(两位小数)**\
<input type="text" onkeyup="value=value.replace(/^\D*(\d*(?:\.\d{0,2})?).*$/g, '$1')" > \
**允许输入小数(一位小数)**\
<input type="text" onkeyup="value=value.replace(/^\D*(\d*(?:\.\d{0,1})?).*$/g, '$1')" > \
**开头不能为0,且不能输入小数**\
<input type="text" onkeyup="value=value.replace(/[^\d]/g,'').replace(/^0{1,}/g,'')" >