我正在尝试编写一个 Java 脚本正则表达式来匹配字符串是否仅包含允许的字符,方法如下 -
- 字符串中只能包含 0、1、x 或逗号 (,)。
- 每个数字(0、1 或“x”)应以逗号 (,) 分隔
- 应至少有一个逗号分隔值(即“0,1”或“0,x,1”)
- 逗号应始终被数字或“x”包围(即“,”或“,0”无效)
是否可以为这种情况编写正则表达式?我可以使用java脚本字符串分割来做到这一点,但这对我来说并不优雅。希望有人能帮忙想出一个满足上述条件的正则表达式。
最佳答案
虽然我同意@SomeKittens 的观点,即你应该展示你尝试过的内容,但你至少提供了一个相当详细的规范。根据我的理解,你可以使用这样的东西:
var isValid =/^(?:[01x],)+[01x]$/.test(str);
与以下任意一项匹配:
- 0,1
- 0,1,1
- 0,x,0,0
这些都不是:
- 0
- ,
- 0,
- 0,1,
- ,1
- 0,,1
- 0,X(大写X)
如果您除了小写字母之外还希望允许匹配大写 X,请将 /i
标志添加到正则表达式中以进行不区分大小写的匹配。
关于javascript - Javascript Regex - 查找脚本中是否仅存在允许的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11526897/