我有以下内容 - 我正在尝试获取属性calc(100% - 14px)
但没有运气:
var a = 'width:calc(100% - 14px); adsasd';
var b = 'width:calc(100% - 14px]; adsasd';
console.log(a.match('width:calc\(.*?\)$'));
console.log(b.match('width:calc\(.*?\)$'));
两个console.log都会输出相同的结果
["width:calc(100% - 14px); adsasd",
"(100% - 14px); adsasd"]
["width:calc(100% - 14px]; adsasd",
"(100% - 14px]; adsasd"]
如何从给定字符串中获取calc(100% - 14px)
?
@Solved with
/width:\s?(calc\(.*\))/
因为内联style="width: calc(100% - 14px)"
没有;
且width
和calc
之间的空格不匹配。
答案 0 :(得分:1)
正则表达式末尾的$
将模式匹配延伸到结束。$
描述了字符串的结尾..
使用width:(calc\(.*?\));
Group 1
包含您所需的数据
答案 1 :(得分:1)
这似乎没问题:http://jsfiddle.net/zFacF/1/
$正在使。*匹配一直到最后。相反,我添加了;
来阻止这种情况发生。
答案 2 :(得分:1)
如果您还想验证该字符串是否具有相同的表单:
^width:(calc\(.*\));.*$
第一组(组[1])将包含所需的结果。
如果您不需要验证,请仅使用:
calc\(.*\)
在这种情况下,结果是完全匹配。
答案 3 :(得分:1)
/width:(calc\(.*\))/
如果你想考虑方括号:
/width:(calc[(\[].*[)\]])/