Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/451.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_Regex - Fatal编程技术网

JavaScript:使用正则表达式在字符和数字之间添加空格

JavaScript:使用正则表达式在字符和数字之间添加空格,javascript,regex,Javascript,Regex,您好,我有一个车牌号BZ8345LK,希望转换成BZ8345LK(在字符和号码之间添加空格) 我尝试使用这个正则表达式,但不起作用,只使用带有数字的空格第一个字符。例如,“LK”与数字之间不留空格 var str = 'BZ8345LK'; str.replace(/[^0-9](?=[0-9])/g, '$& '); # return BZ 8345LK, I want BZ 8345 LK 您应该选择另一种可能性,即数字后面跟着非数字: var str='BZ8345LK'; c

您好,我有一个车牌号
BZ8345LK
,希望转换成
BZ8345LK
(在字符和号码之间添加空格)

我尝试使用这个正则表达式,但不起作用,只使用带有数字的空格第一个字符。例如,“
LK
”与数字之间不留空格

var str = 'BZ8345LK';
str.replace(/[^0-9](?=[0-9])/g, '$& ');
# return BZ 8345LK, I want BZ 8345 LK

您应该选择另一种可能性,即数字后面跟着非数字:

var str='BZ8345LK';
console.log(str.replace(/[^0-9](?=[0-9])|[0-9](?=[^0-9])/g,'$&')您可以使用此正则表达式

[a-z](?=\d)|\d(?=[a-z])
  • [a-z](?=\d)
    -匹配后跟数字的任何字母表
  • |
    -与逻辑或相同的交替
  • \d(?=[a-z])
    -后跟字母的任何数字
let str='BZ8345LK'
设op=str.replace(/[a-z](?=\d)|\d(?=[a-z])/gi,$&)

console.log(op)
另一个选项是使用:

^[^\d]+|[\d]{4}
搜索任何非数字字符
[^\d]
,后跟4个数字
[\d]{4}
字符

const str='BZ8345LK'
让answer=str.replace(/^[^\d]+|[\d]{4}/gi,$&'))
console.log(应答)
试试这个

var str=“BZ8345LK”;
var result=str.replace(/([A-Z]+)(\d+([A-Z]+)/,“$1$2$3”);

控制台日志(结果)
这里解释了为什么在动态文本输入(如更改时)中选择此选项是最好的。如果数字格式
BZ83 45LK
,您是否可以强制将数字
BZ83 45LK
中的额外空格删除到
BZ8345 LK
,如何保持输出
BZ 8345 LK
@Puyup,然后使用答案。@Puyup您只需删除所有空格
str.replace(/\s+/g',)
如果在文本输入中使用onChange,则此代码为每个字符和数字添加更多额外的空格。