javascript 如何从粘贴的字符串中删除点

mlnl4t2r  于 2023-03-28  发布在  Java
关注(0)|答案(1)|浏览(91)

我写了一些JavaScript代码,在将数字插入表中时,应该从粘贴的数字字符串中删除点。然而,当我试图将值粘贴到表中时,我立即收到一个警告,并且函数不会删除点。
例如,当粘贴数字11.11时,我希望接收值1111。
下面是我使用的代码:

$(document).ready(function () {

$('#MY_IG_ig > div.a-IG-body').on('paste', function (e) {

 var clipboardData, pastedData;
  clipboardData = e.originalEvent.clipboardData || window.clipboardData;
  pastedData = clipboardData.getData('Text');
  
    pastedData = pastedData.split('.').join('');
  
  if (!/^\d+$/.test(pastedData)) {
    e.preventDefault();
    alert('Must be a number!');
  }
});
});

编辑:
我修改了代码如下:

if (!/^\d+$/.test(pastedData)) { e.preventDefault(); alert('Enter a valid number!'); } else { $(e.target).val(pastedData); }

在控制台上,值是正确的,11.11被更改为1111,但当我将值粘贴到表中时,我得到11111.11。是什么原因导致了这一点?

dwbf0jvd

dwbf0jvd1#

如何查找问题

  • 你知道输入是什么吗?
  • 你知道触发警报的输出是什么吗?
  • 是否有前导空格或尾随空格?

在从clipBoard数据中获得pastedData之后,您可以通过像这样添加额外的console.log语句来检查这些可能性。

pastedData ="11.11";

console.log(`Original pastedData "${pastedData}"`)

pastedData = String(pastedData).split('.').join('');
  
console.log(`Final pastedData = "${pastedData}"`)

  
if (!/^\d+$/.test(pastedData)) {
    e.preventDefault();
    alert('Must be a number!');
}

如果输入确实是11.11,则输出将是1111

相关问题