[英]Javascript Regex to find numbers followed by 'px' or '%' [closed]
我试图在javascript中做一个正则表达式,以找到后面跟着px
, %
或根本没有单位的数字,我的问题是看此正则表达式的结构是否正确。
[0-9]*\.?[0-9]+(px|%)?
该应用程序将像这样
var string = '10px, 15px, 10';
var regex = [0-9]*\.?[0-9]+(px|%)?
var matches = string.match( regex ); // return [ '10px', '15px', 10 ]
我已经测试过了,但是我想确定结构是否正确。
看起来不错,除了您忘记将正则表达式放在正则表达式引号中之外,而且您可能希望它不区分大小写,因此:
var regex = /[0-9]*\.?[0-9]+(px|%)?/i;
注意[0-9]
可能是\\d
。 另外,如果您不使用捕获组,则可以将其设置为非捕获组。 所以:
var regex = /\d*\.?\d+(?:px|%)?/i;
您不允许在数字之后和px
/ %
之前px
空格,但是我认为这是有意的。
据我了解,您的正则表达式也将匹配.2
尝试这个:
[0-9]+(\.[0-9]+)?(px|%)?
说明:
[0-9]+
是数字
(\\.[0-9]+)?
是可选的分数部分
(px|%)?
是可选单位。
顺便说一句,您可以根据需要使用\\d
表示数字。 有人会说它更具可读性:
\d+(\.\d+)?(px|%)?
我会这样写。
/\d*\.?\d+(?:px|%)?/g
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.