如何通过正则仅替换CSS中text-align与align属性值,排除vertical-align
正则调整方案
你原来的正则只匹配align:前缀,没有限制属性名的完整匹配,所以vertical-align里的align后缀也会被命中,调整后写法如下:
string.replace(/(?<=(^|;|\s)(text-)?align:)(.*?)(?=;)/g, "right")
规则说明
(^|;|\s)限制属性名前必须是行开头、分号或空格,兼容样式串里属性前带空格的场景(text-)?align:精准匹配你需要替换的两个属性:align:和text-align:,排除vertical-align这类其他带align的属性- 后续匹配逻辑和你原有写法一致,不会改动其他属性的取值
用你提供的示例样式串测试后,vertical-align:middle会完全保留,text-align:center和align:center会被替换为text-align:right和align:right,符合需求。
内容的提问来源于stack exchange,提问作者Steve Reeder
相关产品推荐
相关产品推荐

