我的文字看起来与此类似:
action=addItem&siteId=4&lang_locale=en_US&country=US&catalogId=1&productId=417689&displaySize=7&skuSize=2194171&qty=1&pil=7&psh=had+AIRJRnjbp7+rGivIKg00
我想替换“psh”的值。它有时可能不是最后一个值(它后面可能跟有 &something=else
)。
我试过执行这些代码行:
var text = text.replace(/&psh=.*(?=&|$)/, "&psh="+ data.psh);
var text = text.replace(/&psh=.*(?=[&|$]+)/, "&psh="+ data.psh);
var text = text.replace(/(?:&psh=)(.*)(?=[&|$]+)/, data.psh);
它们都不适用于这两种情况。使用 this site检查正则表达式。
最佳答案
这应该有效:
var text = text.replace(/&psh=[^&]*/, "&psh=" + data.psh);
[^&]*
匹配由除 &
以外的任何字符组成的任意长度的字符串,因此匹配将一直持续到字符串结尾或直到 (但不包括)下一个 &
,以先到者为准。
关于javascript - 尝试使用 Javascript 正则表达式获取一段 "&"分隔文本,无论它是否是最后一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12334288/