gpt4 book ai didi

javascript - 使用正则表达式替换字符串的一部分

转载 作者:行者123 更新时间:2023-11-28 15:53:38 25 4
gpt4 key购买 nike

我有一个字符串

string = "width: 10px; height: 20px; whatever: 0px;";

我希望将高度部分更改为 50px 并保留其余部分,以便最终结果如下

string = "width: 10px; height: 50px; whatever: 0px;";

我尝试过 string.replace("height: .*px;", "height: 50px;"); 但这似乎不起作用。

有人可以帮我吗

最佳答案

Guilherme 的答案部分正确:您确实需要传入正则表达式。不过,您的正则表达式还有另一个问题:您的重复( .* 就在 px 之前)是贪婪:它将匹配它可以匹配的所有内容。所以如果你有 height: 20px; whatever: 0px ,它将贪婪地匹配 20px; whatever: 0px (看看它如何消耗直到最后一个 px 的所有内容?)。您必须通过在重复项后附加 ? 将其更改为惰性匹配。 :

string.replace( /height: .*?px;/, "height: 50px;" ); 

为了使其更加健壮,您可能需要考虑可变数量的空白,或者高度是否出现在字符串末尾(我使用前瞻):

string.replace( /height:\s*\d+px(?=;|$)/, 'height: 50px' );

注意我还使用了数字说明符 ( \d ),而不是通配符元字符 ( . )。显然,只有当高度始终以整数单位指定时,这才有效。

关于javascript - 使用正则表达式替换字符串的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19664218/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com