我正在使用以下正则表达式来验证CSS大小:
([0-9]*\.?[0-9]+)(em|px|%)
以下尺寸有效:
如何更改正则表达式以使单位(em | px |%)可选以仅允许数字?
答案 0 :(得分:2)
您只需在末尾添加?
即可使该单位成为可选项。
([0-9]*\.?[0-9]+)(em|px|%)?
由于该单位现在是可选的,因此该模式也只允许数字实体。但请注意,做某些内容也会部分匹配以下内容的有效内容。
如果这是一个问题,那么您可以添加^
字符串开头和$
行结束字符串模式修饰符来限制检查。
([0-9]*\.?[0-9]+)(em|px|%)?$
答案 1 :(得分:1)
制作整个小组optional:
([0-9]*\.?[0-9]+)(em|px|%)?
或为空字符串添加另一个alternative:
([0-9]*\.?[0-9]+)(em|px|%|)
可选组正则表达式将捕获undefined
仅数字值,另一个正则表达式将捕获空字符串""
。
答案 2 :(得分:0)
如果您确实想要匹配em
或px
或%
(但可选),您只需使用?
:
([0-9]*\.?[0-9]+)(em|px|%)?$
修改强>
现在我明白了这个问题。还添加了无效匹配的锚定原因。