gpt4 book ai didi

javascript - 删除不需要的 '-' 字符

转载 作者:行者123 更新时间:2023-11-30 11:55:50 26 4
gpt4 key购买 nike

这可能是一个快速而简单的答案。我正在为跟踪目标数据的应用程序更新一些代码。我们的客户希望为目标添加负值。这听起来不对,但他们想将其添加到虚拟员工中以平衡公司总数。

我已经完成了所有工作,我只是想让事情以一种“白痴证明”的方式说话,并处理最终可能出现的所有问题。我已经更新了此应用程序中当前存在的“onKeyDown”javascript 函数,以修复输入 -0 或仅 - 符号的用户。我想添加另一层以防止他们将 - 符号放在数字的中间,例如 56-88 而不是 -5688。这是我为此编写的代码:

for (j=1; j< f.value.length; j++)
{
buf2 = f.value.substr(j,1);
if(buf2 == '-')
{
f.value = f.value.replace(f.value.substr(j,1),'');
}

}

我从 1 开始 for 循环以跳过字符串的第一个索引,以防它是一个 - 符号,然后遍历每个索引检查一个 - 符号并将其替换为空,基本上将其删除。它工作得很好,除非开头也有一个 - 符号,然后它会删除第一个 - 符号而不是第二个。

例如,在测试我输入 56-88 的应用程序时,它会按设计将此字段更新为 5688,但是当我将其更新为 -56-88 时,它应该将其更新为 -5688,但反而给我 56-88。我对此摸不着头脑,因为它看起来应该可以正常工作。感谢您的帮助!

最佳答案

在您的情况下,它与第二个 -(如果条件)匹配,但替换只会替换开头的第一个匹配项。

只需使用 String#replace 即可 方法与 negative look ahead assertion正则表达式以避免 - 开始。

f.value = f.value.replace(/(?!^-)-/g,'')

console.log(
'-56-88'.replace(/(?!^-)-/g, '')
);

Regex explanation here.

Regular expression visualization


如果你想让你的代码正常工作,你可以做的是使用 String#substr 获取剩余的字符串 方法本身。

for (j=1; j< f.value.length; j++)
{
buf2 = f.value.substr(j,1);
if(buf2 == '-')
{
f.value = f.value.substr(0,j) + f.value.substr(j+1);
// decrement value to avoid skipping character
j--;
}
}

var f = {
value: '-34-34'
}

for (j = 1; j < f.value.length; j++) {
buf2 = f.value.substr(j, 1);
if (buf2 == '-') {
f.value = f.value.substr(0, j) + f.value.substr(j + 1);
// decrement value to avoid skipping character
j--;
}
}

console.log(f.value)

关于javascript - 删除不需要的 '-' 字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38019689/

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