我要实现一个正则校验规则:字母数字必须得有,特殊字符可有可无,但是有的话仅包含?-@!$*
时间: 2023-04-04 09:00:56 浏览: 75
您好,您可以使用以下正则表达式来实现您的需求:
^[a-zA-Z-9]+[-?@!$*]*$
这个正则表达式表示字符串以字母或数字开头,后面可以跟着任意数量的特殊字符(包括-?@!$*),但是不能以特殊字符结尾。如果您需要特殊字符必须出现一次,可以将*改为+。希望这个回答能够帮到您。
相关问题
js 正则校验 0.01~9999999范围内的数字,小数点后最多两位
可以使用以下正则表达式进行校验:
/^(0|[1-9]\d{0,6})(\.\d{1,2})?$/
解释一下:
^ 表示匹配字符串的开头
(0|[1-9]\d{0,6}) 表示匹配 0 或者 1-9999999 的数字,其中 [1-9]\d{0,6} 表示匹配 1-9 开头的 1-7 位数字,\d{0,6} 表示匹配 0-6 位数字
(\.\d{1,2})? 表示小数部分,其中 \. 表示匹配小数点,\d{1,2} 表示匹配 1-2 位数字,? 表示小数部分可有可无
$ 表示匹配字符串的结尾
所以这个正则表达式可以匹配 0.01-9999999.99 范围内的数字。
正则 校验手机号、座机号
同时校验中国大陆手机号码和座机号码的正则表达式:
```
/^(1[3-9]\d{9})$|^((0\d{2,3}-?)?\d{7,8})$/
```
说明:使用“|”符号将手机号码和座机号码的正则表达式进行了合并,表示匹配满足其中一个条件的字符串。其中手机号码的正则表达式和上一个回答中给出的相同,座机号码的正则表达式中使用了“()”将区号和后面的电话号码分组,并使用了“?”表示区号可有可无,最后使用了“-”符号表示区号和电话号码之间可以有一个横杠“-”。
阅读全文