gpt4 book ai didi

javascript正则表达式字符串替换只能工作一次

转载 作者:行者123 更新时间:2023-11-28 11:27:46 24 4
gpt4 key购买 nike

问候。

我有一个函数可以监视“价格”字段的内容并更新“购物车”字段中的字符串。在“购物车”字段中,| 之间的字符串字符将被替换为“价格”中输入的任何内容。我当前的功能只能运行一次,而连续更改则不会发生任何情况。我知道这不是事件本身的问题,因为如果我在没有正则表达式的情况下替换整个字段,它就可以正常工作。

这是“购物车”字段的格式,需要将 15 替换为“价格”字段中的内容:{nicepaypal:cart|15|2010 年新增}

$('price').addEvent('keyup', function() {
var price = $(this).value;
var currentCartValue = $('cart').value;
var oldPrice = String(currentCartValue.match(/\|...\|/));
oldPrice = oldPrice.substring(1, oldPrice.length-1); // ugly but could not get lookaheads for "between" characters to work properly
var newCartValue = currentCartValue.replace(oldPrice, price);
$('cart').value = newCartValue;
});

另一种变体也不起作用:

newCartValue = currentCartValue.replace(/\|...\|/), '|'+price+'|');

为什么在“价格”字段中多次按下某个键时此功能不起作用。谢谢。

最佳答案

您需要将 g(全局)标志添加到正则表达式中。

newCartValue = currentCartValue.replace(/\|...\|/g, '|'+price+'|');

关于javascript正则表达式字符串替换只能工作一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5573086/

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