gpt4 book ai didi

javascript - 在下面的情况下如何使用javascript编写正则表达式?

转载 作者:行者123 更新时间:2023-12-02 19:01:24 24 4
gpt4 key购买 nike

var value = "ID=advIcon1&CLASS=advIcon&PAGE=43&TOP=2%&LEFT=15%&WIDTH=20%&HEIGHT=10%&RSC=http://www.canon.com.hk/40th/index.html?source=seriesbanner&ICON=http://203.80.1.28/FlippingBook/Dev/Frontend/source/adv/tc_bn_314.jpg&ALT=Cannon Adv"

我想要实现的是来自

&RSC=http://www.canon.com.hk/40th/index.html?source=seriesbanner

&RSC=http://www.canon.com.hk/40th/index.html?source#seriesbanner

替换&RSC&ICON之间的所有“=”

value = value.replace (/&RSC=%[=]+%&ICON/,/&RSC=%[#]+%&ICON/); 

上面是我尝试过的代码,但是不起作用,如何解决这个问题?谢谢

最佳答案

我会这样做:

var value = "ID=advIcon1&CLASS=advIcon&PAGE=43&TO...";
var startIndex = value.indexOf("&RSC");
var endIndex = value.indexOf("&ICON");
var head = value.substring(0, startIndex);
var tail = value.substring(endIndex);
var body = value.substring(startIndex, endIndex);
var result = head + body.replace(/=/g, '#') + tail;

我认为尝试用一个疯狂的正则表达式完成整个事情没有任何优势。

这只会使您的代码更难阅读且效率更低。

更好的是,让它成为一个可以重复使用的函数:

// Replaces every occurrence of replaceThis with withThis in input between
// startPattern and endPattern.

function replaceCharactersBetween(input, startPattern, endPattern, replaceThis, withThis) {
var startIndex = input.indexOf("startPattern");
var endIndex = input.indexOf("endPattern");
var head = input.substring(0, startIndex);
var tail = input.substring(endIndex);
var body = input.substring(startIndex, endIndex);
var regex = new RegExp(replaceThis, 'g');
return head + body.replace(regex, withThis) + tail;
}

关于javascript - 在下面的情况下如何使用javascript编写正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14764666/

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