Javascript 带有固定开始和结束的正则表达式

Javascript 带有固定开始和结束的正则表达式,javascript,regex,Javascript,Regex,我有以下东西-我正在尝试获取属性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:c

我有以下东西-我正在尝试获取属性
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)

@已解决

/width:\s?(计算\(.*)/

因为使用内联
style=“width:calc(100%-14px)”
而不使用
宽度
计算
之间的空格不匹配


正则表达式末尾的
$
将模式匹配一直延伸到末尾。
$
描述字符串的结尾

使用宽度:(计算\(.*)


组1
包含您所需的数据

正则表达式末尾的
$
将模式匹配一直延伸到末尾。
$
描述字符串的结尾

使用宽度:(计算\(.*)


第1组
包含您所需的数据

这似乎可以正常工作:


一直到最后,$一直在进行。*匹配。相反,我添加了一个
以阻止这种情况发生。

这似乎可以正常工作:


一直到最后,$一直在进行。*匹配。相反,我添加了一个
以阻止这种情况发生。

如果还想验证字符串是否具有相同的表单,请使用:

^width:(calc\(.*\));.*$
第一组(组[1])将包含所需的结果

如果不需要验证,请仅使用:

calc\(.*\)

在本例中,结果是完全匹配。

如果您还想验证字符串是否具有相同的表单,请使用:

^width:(calc\(.*\));.*$
第一组(组[1])将包含所需的结果

如果不需要验证,请仅使用:

calc\(.*\)
在这种情况下,结果是完全匹配的。

/width:(计算\(.*)/

如果要考虑方括号,请执行以下操作:

/width:(计算[(\[].[)\]])/
/width:(计算[(.*))/

如果要考虑方括号,请执行以下操作:


/width:(计算[(\[].[)\]]/CSUT/<代码> 

这是CSS3函数,方格括号的末端是什么?第二个Calc?@ AllysondePaula,请考虑接受解决你问题的答案。CSS3函数,方格括号的结尾是什么?第二个Calc?@ AllysondePaula,请考虑接受解决你问题的答案。谢谢。范例工作。但是没有分隔的逗号
如果是内联
style=“with:calc(100%-14px)”
将不会matches@AllysondePaula请尝试
width:(计算\(.*?\)(\s|))
感谢给出的示例工作。但是没有分隔的逗号
如果是内联
style=“with:calc(100%-14px)”
将不会matches@AllysondePaula尝试
width:(计算\(.*)(\s|))
将在给定的示例中起作用,但不使用
的内联
style=“width:calc(100%-14px)”
-一位朋友帮我找到
/width:\s?(calc\(.*)/
对给定的示例有效,但不使用
的内联
style=“width:calc(100%-14px)”
-一个朋友帮我找到
/width:\s?(计算\(.*)/