正则表达式接收参数
如果想要向正则规则传递参数,需使用正则的构造函数写法。此外,还需要注意转义字符。如下例子:
let decimal = 2;
let reg = new RegExp(`^\\d+(.?\\d{1,${decimal}})?$`);
上面例子的常规写法是:/^\d+(.?\d{1,2})?$/
。
可以注意到,再new RegExp()
写法中,左右两边的/
不用写出来了。因为,构造函数会自动补充上去。
此外,对于\
还需要进行了转义。因为,new RegExp()
接收的参数是字符串,如果不对\
进行转义,\
就会被当做转义符号了。
非特殊字符串
/^[a-zA-Z0-9_\u4e00-\u9fa5]+$/
只限输入字母和特殊字符
/^(?!.*[^\x21-\x7e]).*$/
整数
/^-?\d+$/
正整数
/^\d+$/
正负实数
/^-?\d+(.?\d+)?$/
邮箱
/^([a-zA-Z0-9._%-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4})*$/
字母、- 或者 _
/^[A-Za-z0-9_-]+$/
中文
/^[\u4e00-\u9fa5]+$/
中文、字母、数字
/^[\u4e00-\u9fa5a-zA-Z0-9]+$/