元字符和修饰符
//常用元字符
* 零次到多次
+ 一次到多次
? 零次或者一次
{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,'')" >