我正在使用以下正则表达式来验证 CSS 大小:
([0-9]*\.?[0-9]+)(em|px|%)
因此,以下尺寸是有效的:
- 10像素
- 10.2像素
- 1.5em
- 100%
如何更改正则表达式以使单位 (em|px|%) 可选以仅允许数字?
我正在使用以下正则表达式来验证 CSS 大小:
([0-9]*\.?[0-9]+)(em|px|%)
因此,以下尺寸是有效的:
如何更改正则表达式以使单位 (em|px|%) 可选以仅允许数字?
您可以简单地?
在末尾添加以使该单元可选。
([0-9]*\.?[0-9]+)(em|px|%)?
由于该单元现在是可选的,因此此模式也将允许仅数字实体。但是请注意,执行某些操作也会部分匹配使以下内容有效的内容。
如果这是一个问题,那么您可以添加^
字符串开头和 $
行尾字符串模式修饰符来限制检查。
([0-9]*\.?[0-9]+)(em|px|%)?$
如果您实际上想要匹配em
OR px
OR %
(但可选),您可以简单地使用?
:
([0-9]*\.?[0-9]+)(em|px|%)?$
编辑
现在我明白了这个问题。还添加了无效匹配的锚原因。