javascript - 正则表达式创建允许,禁止少数字符
问题描述
我是正则表达式的新手,我有这个用例:
- 允许字符、数字。
- 允许零个或一个问号。(? - 不允许使用有效的连续问号 (??))。
测试有效
?test - 有效
??测试-无效
?test?test - 有效
???测试无效
测试??测试-无效
- 排除 $ 符号。
[a-zA-Z0-9?] - 似乎这不起作用
谢谢。
解决方案
试试下面的正则表达式:
^(?!.*\?\?)[a-zA-Z0-9?]+$
首先我们使用
Negetive lookahead
- 它允许我们排除任何后跟双问号的字符(Negetive lookahaed
不消耗字符)由于问号在正则表达式中具有特殊含义(
Quantifier
- 匹配 0 到 1 次),因此每个问号都使用反斜杠进行转义。末尾的加号是 a
Quantifier
— 匹配一次到无限次,尽可能多次
推荐阅读
- excel - MS Access 数据库关闭时,VBA 代码中的更新语句失败
- php - 使用 POST 进行路由以 404 结束
- r - 不推荐使用 Tidyverse 命令:在汇总中进行 T 测试,然后报告所有结果
- html - 如何在表中创建三层行?
- domain-driven-design - 交叉聚合引用:命令处理程序可以在聚合 id 集合之间循环,还是事件处理程序可以分派命令?
- c# - 将一组 yield 返回语句重构为方法
- javascript - 遇到 javascript 画布图形和运动的问题
- if-statement - 谷歌表格勾选框查询
- java - 我们如何在 Android 项目中排除一些单元测试
- office365 - 在 Office Web 插件中调用 Sharepoint REST api