连续删除特定的重复特殊字符,但每次使用正则表达式至少保留一个?



我是JS的新手,正则表达式让我很困惑,所以我很挣扎,一直在谷歌上搜索一分钟。 我在这里发现了一个类似的问题 正则表达式,删除重复出现的字符但至少保留一个,但仍然无法通过执行特定的特殊字符来解决这个问题。(/*-+.)

我正在用javascript构建一个计算器,并试图防止输入看起来像这样,如果多次按下运算符按钮:

6 *** 6///5 ** 3...2 --- 1 ++ 9

并将其变成

6 * 6/5 * 3.2 - 1 + 9

相反,但仍允许在不同位置重复运算符或小数。因此,删除连续多次发生的重复字符。 我尝试检查输入的最后一个字符是否是您按下的运算符按钮值的重复,但这感觉很笨拙。 我认为正则表达式可能是最好的方法?如果我错了,请纠正我,谢谢!

尼克的评论有所帮助!我以为我在故障排除时早些时候尝试过他的解决方案,但事实证明我之前搞砸了格式,他清除了它!谢谢!总有一天我会理解正则表达式。(^:

let regex = /([./*+-])1+/;
text.textContent = text.Content.replace(regex, '$1');

而不是replacing您可以阻止该事件。

document.getElementById("in").addEventListener("keypress", (evt) => {
const value = evt.target.value;
(value.indexOf("*") > -1 ||
value.indexOf("+") > -1 ||
value.indexOf("-") > -1) &&
evt.preventDefault();
});

最新更新