繁体   English   中英

JS字符串:在数字和字母之间添加空格

[英]JS String: Add whitespace between numbers and letters

我需要一个正则表达式或任何其他方法来在字符串中的数字和字母之间添加空格。

例:

"E2356" => "E 2356"
"E123-F456" => "E 123-F 456"

我已经找到了可以使用的正则表达式,但是Javascript无法实现:

(?<=[^0-9])(?=[0-9])

谢谢!

代替后面的数字,只需匹配非数字即可:

[^0-9](?=[0-9])

并替换为“ $&”。

[^0-9]子模式将匹配1个字符,该字符不是可以用替换模式中的$& (整个匹配文本)引用的数字。 (?=[0-9])前瞻将确保后面紧跟一个数字。

观看演示

 var re = /[^0-9](?=[0-9])/g; var str = 'E2356<br/>E123-F456'; var result = str.replace(re, '$& '); document.write(result); 

将字母和数字的两个字符序列匹配,再加上字母和数字的捕获组,然后将String#replace$1$2占位符一起使用,以引用捕获组的内容,并在两者之间留一个空格。

str.replace(/([^0-9])([0-9])/g, '$1 $2')
              ^^$1^^  ^^$2^

g标志确保所有出现的事件都被替换。

使用String#replace

'E123-F456'.replace(/([A-Z])(\d)/g, '$1 $2')
// >>> "E 123-F 456"

$1$2是从正则表达式捕获的组,并用空格分隔。 该表达式假定您只有大写字符。 请记住,将g标志添加到表达式中以替换每次出现的情况。

您不能使用正则表达式格式化字符串。 正则表达式可帮助您验证某个字符串是否遵循表达式描述的语言。

正则表达式可帮助您使用不同的变量捕获字符串的某些部分,然后根据需要设置其格式,以获取所需的输出。

所以我建议你做这样的事情:

var data = "E2304" ; 
var regex = ([^0-9])([0-9]*)/g ; 
data.replace(/regex, '$1 $2') ; 

试试下面的代码

var test = "E123-F456".match(/[a-zA-Z]+|[0-9]+/g);
console.log(test.join(' '));

小提琴http://jsfiddle.net/anandgh/h2g8cnha/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM