【发布时间】:2013-12-21 23:30:41
【问题描述】:
我正在尝试编写一个必须遵守以下规则的正则表达式:
Y120.001/100.232k
↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
| | | | | | | | This k may be any letter, is not required
| | | | | | | Another number if there was a dot
| | | | | | A dot, not required
| | | | | A number with at least one digit, not required if a letter follows
| | | | Always a slash
| | | If there's a dot, digits can follow
| | A dot, not required
| A number, at least one digit
Always Y
这些字符串应该可以工作:
- Y120.001/1k
- Y1/小时
- Y2039/100
- Y29/47.0
这些不应该工作:
- x203/493s(开头不是 Y)
- Y/39x(Y 后面没有数字)
- Y83839(下半部分缺失)
Y78/29(最后一个字母丢失)
这是我早期的尝试,但在 PHP 中不起作用:
/^\$*(\d)*(.*(\d))\/*(.*(\d))*.$
【问题讨论】:
-
你写的是最后一个字母不需要,第二个数字也不需要,这是否意味着 Y123/ 是一个有效的字符串?
-
@klarki 关于它说“如果后面有字母则不需要”的数字。我的理解是这样的:你可以不带字母或不带数字,但不能不带两者,即
Y123/1-> 有效,Y123/x-> 有效,Y123/-> 无效。 -
这个有什么解决办法吗..stackoverflow.com/questions/34327142/…
标签: javascript php regex