Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript str.replace(/[^0-9]/g,“";”)将删除整个字符串,而不仅仅是删除非数字字符。如何使它正常工作?_Javascript_Html_String_Input_Replace - Fatal编程技术网

Javascript str.replace(/[^0-9]/g,“";”)将删除整个字符串,而不仅仅是删除非数字字符。如何使它正常工作?

Javascript str.replace(/[^0-9]/g,“";”)将删除整个字符串,而不仅仅是删除非数字字符。如何使它正常工作?,javascript,html,string,input,replace,Javascript,Html,String,Input,Replace,我正试图使用str.replace,以便在有人使用copy粘贴某个内容时从数字输入字段中删除任何非数字字符。但是,该函数似乎总是删除所有字符,而不是仅删除非数字字符 令人惊讶的是,该函数能够检测我的字符串何时为纯数字,并且在这些情况下不会更改它,但是添加一个单独的其他字符将导致整个字符串被丢弃,而不仅仅是删除错误的字符 我试图将函数的regexp改为/\D/,但效果不大 这里有一个最小的可复制示例,必须在Firefox上运行 试验 让输入=document.getElementById(“in

我正试图使用str.replace,以便在有人使用copy粘贴某个内容时从数字输入字段中删除任何非数字字符。但是,该函数似乎总是删除所有字符,而不是仅删除非数字字符

令人惊讶的是,该函数能够检测我的字符串何时为纯数字,并且在这些情况下不会更改它,但是添加一个单独的其他字符将导致整个字符串被丢弃,而不仅仅是删除错误的字符

我试图将函数的regexp改为/\D/,但效果不大

这里有一个最小的可复制示例,必须在Firefox上运行


试验
让输入=document.getElementById(“inp”);
input.onblur=函数()
{
$(文档).ready(函数()
{
input.value=input.value.replace(/[^0-9]/g,“”);
});
}
我希望像“34a01 2”这样的输出是“34012”,但实际输出是“”(无)。我的regexp有什么问题吗

let input=document.getElementById(“inp”);
input.onblur=函数(){
$(文档).ready(函数(){
input.value=input.value.replace(/[^0-9]/g,“”);
});
}

我已经阅读了您对Firefox的评论,并准备了一个新版本

不包括“数字”类型似乎有效

使用“数字”类型不会在Chrome中引起任何问题,所以我猜Firefox的行为方式不一样


试验
让输入=document.getElementById(“inp”);
input.onblur=函数(){
input.value=input.value.replace(/[^0-9]+/g,“”);
}

这似乎是Firefox的问题(或bug)。每当数字输入的任何位置有非数字字符时,字段的
.value
将为空字符串:

setInterval(()=>{
console.log(输入值);
}, 400);

你的代码对我来说很好。我只能在输入框中键入数字。不相关:您不需要
$(文档)。准备好
onblur
event@Pitto不是你打字的时候。当你在里面复制粘贴的时候。我希望在模糊输入字段时删除任何非数字字符,但它不仅删除非数字内容,还删除数字。复制/粘贴也可以。请检查我下面的答案,@Eox示例中的post代码(现在可以运行它)对我很好。@CertainPerformance尝试了与您相同的操作:不适用于我。它可能与我使用的导航器或操作系统有关吗?我目前正在linux电脑上用firefox做这件事,但在我这方面仍然不起作用。问题一定在别的地方。也许它与我的导航器(Firefox)或我的操作系统有关?编辑:JQuery似乎加载良好。我似乎在控制台上找不到任何错误。说得好,@Eox。我下载了Firefox,并且能够重现这个问题。请检查这个新版本。我很高兴看到,@Eox。如果这段代码对你有用,请不要忘记投票和/或接受我的答案。知道了。那我就试着找个解决办法。谢谢大家的帮助。:)