Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/459.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.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中正则表达式a值的问题_Javascript - Fatal编程技术网

javascript中正则表达式a值的问题

javascript中正则表达式a值的问题,javascript,Javascript,我目前正试图屏蔽一个输入字段。目前我有以下代码用于格式化输入: const inputMask = (value) => value.replace(/\s/g, '').match(/.{1,4}/g)?.join(' ').substr(0, 19) || ''; 因此,我有一个输入字段,每当用户输入数字时,它都会调用上述函数inputMask 我已在文本输入中输入XXXXXXXXXX 从inputMask函数返回的是XXXX XXXX XXX 我试图实现的是XXX-XXX

我目前正试图屏蔽一个输入字段。目前我有以下代码用于格式化输入:

    const inputMask = (value) => value.replace(/\s/g, '').match(/.{1,4}/g)?.join(' ').substr(0, 19) || '';

因此,我有一个输入字段,每当用户输入数字时,它都会调用上述函数
inputMask

我已在文本输入中输入XXXXXXXXXX

从inputMask函数返回的是XXXX XXXX XXX


我试图实现的是XXX-XXXX-XXXX

您可以使用
切片
并添加破折号

const输入='01211234567'
constInputMask=(value)=>`${value.slice(0,3)}-${value.slice(4,8)}-${value.slice(8,11)}`;
日志(输入掩码(输入))
const输入='0121234567'
const res=input.toString().replace(/(\d{3})(\d{4})(\d{3})/,“$1-$2-$3”);

控制台日志(res)输入值是多少?@0stone0 01211234567所以您试图从输入中删除双精度
1
?但这些都是10位数字,您的输入显示为11…不幸的是,它仍然没有。输入中有11个字符,但输出中有10个字符。那一个字符到哪里去了?