javascript - 如何使用 javascript regexp 替换字符串的一部分
问题描述
我有这个文本需要替换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 的其余部分完好无损?
解决方案
这将更改字符串中以开头width
和结尾的任何值%;
,您可以根据需要修改正则表达式
first = "width:90%;height:100%;padding-right: 15px;padding-left: 15px;margin-right: auto;margin-left: auto;"
second = "width:90%;height:inherit;padding-right: 15px;padding-left: 15px;margin-right: auto;margin-left: auto;"
third = "height:inherit;padding-right: 15px;padding-left: 15px;width:90%;margin-right: auto;margin-left: auto;"
console.log(first.replace(/width(.*?);/g,"width:25%;"))
console.log(second.replace(/width(.*?);/g,"width:25%;"))
console.log(third.replace(/width(.*?);/g,"width:25%;"))
推荐阅读
- c++ - 定义返回模板对象实例或引用的函数的最佳方式
- angular - laravel angular没有将值传递给角度函数
- system-verilog - 为什么要在systemverilog中使用两次“new”?
- jenkins - Jenkins 主代理无法使用 EC2 插件连接到 Windows 从代理
- swift - 从 UIKit 视图运行场景的 SKAction
- reactjs - 反应中的串联get请求API调用
- fstar - 是否有 F* 的证明搜索功能?
- c# - 如何使用 c# 将 PDF 打印到 ZPL(斑马打印机)?
- c++ - C++ Windows 凭据提供程序错误屏幕
- css - 如何使用 CSS 将元素翻转 180 度?