Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/85.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 在输入中每三个数字后添加空格_Javascript_Html_Input - Fatal编程技术网

Javascript 在输入中每三个数字后添加空格

Javascript 在输入中每三个数字后添加空格,javascript,html,input,Javascript,Html,Input,我想在每三个数字后添加空格,但如果输入是type=“number”,则此代码不起作用。有人知道如何修改代码以使其即使在type=“number” ? 以下是我的意见: <input type="number" id="phone" autocomplete="off" placeholder="(+420)"> 下面是脚本: <script> document.getElementByI

我想在每三个数字后添加空格,但如果输入是
type=“number”
,则此代码不起作用。有人知道如何修改代码以使其即使在
type=“number”
? 以下是我的意见:

<input type="number" id="phone" autocomplete="off" placeholder="(+420)">

下面是脚本:

<script>
document.getElementById('phone').addEventListener('input', function (e) {
    e.target.value = e.target.value.replace(/[^\dA-Z]/g, '').replace(/(.{3})/g, '$1 ').trim();
});
</script>

document.getElementById('phone')。addEventListener('input',function(e){
e、 target.value=e.target.value.replace(/[^\dA-Z]/g',).replace(/(.{3})/g',$1').trim();
});
试试这个:

function insertBlankAfterEveryThreeCharacters(str) {
  var str=str.split(" ").join("").split("");
  var formatted=[];
  while(str.length) {
    for(var i=0; i<3 && str.length; i++) {
      formatted.push(str.shift());
    }
    if(str.length) formatted.push(" ");
  }
  return formatted.join("");
}
document.getElementById('phone').addEventListener('input',function(e){
this.value=insertBlankAfterEveryThreeCharacters(this.value);
});
函数insertBlankAfterEveryThreeCharacters(str){
var str=str.split(“”).join(“”).split(“”);
var格式=[];
while(str.length){
对于(var i=0;i尝试以下方法:

function insertBlankAfterEveryThreeCharacters(str) {
  var str=str.split(" ").join("").split("");
  var formatted=[];
  while(str.length) {
    for(var i=0; i<3 && str.length; i++) {
      formatted.push(str.shift());
    }
    if(str.length) formatted.push(" ");
  }
  return formatted.join("");
}
document.getElementById('phone').addEventListener('input',function(e){
this.value=insertBlankAfterEveryThreeCharacters(this.value);
});
函数insertBlankAfterEveryThreeCharacters(str){
var str=str.split(“”).join(“”).split(“”);
var格式=[];
while(str.length){

对于(var i=0;ii,如果其中包含空格,则它不是一个数字。使用
type=tel
。css可能是一个更好的选择如果其中包含空格,则它不是一个数字。使用
type=tel
。css可能是一个更好的选择