如何用JS替换WordPress style.css中版本号的第三位数字?
搞定WordPress style.css版本号精准替换
嘿,我懂你为啥头疼——WordPress的style.css里版本号那行周围可能夹杂着各种注释、空格,换行符也容易搞砸匹配逻辑。之前用substring或者简单正则没成功很正常,毕竟周边内容不固定嘛。别慌,我给你整个精准的解决方案,既能准确定位到Version行,又能稳稳保留前两位版本号,只修改第三位补丁号。
核心思路:精准正则匹配
我们需要一个能锁定整行Version: x.x.x的正则,同时把前两位版本号(比如1.0)单独捕获出来,这样就能只替换第三位数字。这里的正则表达式是关键:
/^(Version:\s*\d+\.\d+)\.\d+$/gm
给你拆解下每个部分的作用:
^:匹配行的开头,确保我们找的是整行以Version:开头的内容,不会误匹配文本中间的类似字符串(Version:\s*\d+\.\d+):这是一个捕获组,用来保留我们不想修改的部分——Version:、任意数量的空格(包括0个),以及前两位版本号(比如1.0、2.5)\.\d+:匹配第三位版本号的点和数字(比如.0、.9)$:匹配行的结尾,确保我们匹配的是完整的版本号行gm:全局多行模式,让正则能处理整个文本里的所有行(虽然一般style.css里只有一个Version行,但加上更保险)
JS代码实操示例
假设你已经把style.css的内容读取到了fileContent变量里,现在要把第三位版本号改成2,代码可以这么写:
// 假设这是读取到的style.css内容 const fileContent = `/* Theme Name: My Cool Theme Version: 1.0.0 Author: Me Description: A WordPress theme I built */ /* Some other CSS comments */ body { padding: 0; }`; // 你想要设置的新补丁版本号(第三位) const newPatchNumber = 2; // 执行替换 const updatedContent = fileContent.replace( /^(Version:\s*\d+\.\d+)\.\d+$/gm, `$1.${newPatchNumber}` ); // 现在updatedContent就是修改后的内容,直接覆盖写入文件即可 console.log(updatedContent);
效果验证
运行这段代码后,原来的Version: 1.0.0会变成Version: 1.0.2;如果原来的版本是Version: 2.3.5,会变成Version: 2.3.2——不管版本号前后有多少空格,或者周围有多少注释内容,都能精准匹配修改。
内容的提问来源于stack exchange,提问作者sten360
相关产品推荐
相关产品推荐

