给出以下字符串
WIDTH: 700px; HEIGHT: 467px
我如何从中提取数字?我只匹配WIDTH:700px;通过以下测试:
/(WIDTH.+;)/
预期产量应为700
答案 0 :(得分:2)
按原样匹配WIDTH
,然后使用\s*
来计算空白字符,然后是:
,然后是空白字符,最后是数字系列。
var data = "WIDTH: 700px; HEIGHT: 467px";
console.log(/WIDTH\s*:\s*(\d+)/.exec(data)[1]);
// 700
您的RegEx与整个WIDTH: 700px
匹配,因为您使用.+;
,这意味着匹配任何字符,一次或多次,直到;
。
答案 1 :(得分:1)
您可以尝试以下正则表达式并从组索引1获取宽度值, WIDTH?:\ S *(\ d +)PX;
代码:
> var re = /WIDTH:\s*(\d+)px;?/g;
undefined
> var str = "WIDTH: 700px; HEIGHT: 467px"
undefined
> var m;
undefined
> while ((m = re.exec(str)) != null) {
... console.log(m[1]);
... }
700
您也可以尝试拆分,
> "WIDTH: 700px; HEIGHT: 467px".split(/WIDTH:\s*|px/g)[1];
'700'
答案 2 :(得分:1)