繁体   English   中英

Javascript正则表达式查找数字后跟“ px”或“%”

[英]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|%)?

您可以使用以下正则表达式:

var regex = /[0-9]+(?:\.[0-9]+)?(?=px|%|\b)/i;

(?=px|%|\\b)将匹配数字,后跟px%或单词边界。

观看演示

我会这样写。

/\d*\.?\d+(?:px|%)?/g

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM