【发布时间】:2023-03-31 21:43:01
【问题描述】:
我有这段文字需要替换css的宽度部分:
oldStyle = "width:90%;height:inherit;padding-right: 15px;padding-left: 15px;margin-right: auto;margin-left: auto;"
我有这个代码表达式或模式:
oldStyle.replace(new RegExp("width:[0-9]+%;.*$", "g"), "width:25%;")
但结果是:
"width:25%;"
它缺少 css 的其余部分:
"height:inherit;padding-right: 15px;padding-left: 15px;margin-right: auto;margin-left: auto;"
结果应该是:
"width:25%;height:inherit;padding-right: 15px;padding-left: 15px;margin-right: auto;margin-left: auto;"
如何只更改 CSS 的宽度部分并保持其他 CSS 的其余部分不变?
【问题讨论】:
-
为什么不使用简单的字符串操作而不是正则表达式?
-
试试
new RegExp("width:[0-9]+%;", "g") -
我还有其他依赖此方法的代码
-
JB31 没问题,但如果 oldStyle 有 max-width:40%;这也会改变最大宽度
-
(?:^|;|\s)width:[0-9]+(?:px|%)是否用作正则表达式?