JavaScript的正则表达式从小写

JavaScript的正则表达式从小写

问题描述:

分裂大写我有一个像字符串:JavaScript的正则表达式从小写

var str = new Array( 
"Inverted HFFSfor Primary Wrap Or Secondary Multi Wrap", 
"HFFSwith PDSPbackgroud Feederlense & Product Alignerigit", 
"HFFSwith Cooler JKLHbetween Feeder & Product Aligner") 

如何分离即

1)HFFSfor成为HFFS为

2)HFFSwith成为HFFS与

3)PDSPbackgroud成为PDSP化背景

4)JKLHbetween成为JKLH

等之间...

我本能地首先是这样的:

for(var i = 0; i<_str.length; i++){ 
if((/*The needed Regex*/).test(_str[i])){ 


    } 
} 

没有成功....似乎无法进一步思考!

请帮帮忙,谢谢

+0

你的大写范围后没有'+'吗? –

+0

经过测试。测试()仍然没有成功...请删除您的DownVote。谢谢 – ErickBest

+0

'.replace'方法不接受正则表达式作为替代参数。 – revo

indexOf不接受rgex,你可以使用一个.replace这样。

您可以使用:

var repl = str.replace(/\B([a-z](?=[A-Z])|[A-Z](?=[a-z]))/g, '$1 '); 

RegEx Demo

正则表达式破碎:

  • \B:断言其中单词边界不
  • (的位置:开始捕获组# 1
    • [a-z](?=[A-Z]):匹配小写字母前方是否有一个大写字母
    • |:或
    • [A-Z](?=[a-z]):匹配大写字母,如果有一个小写字母提前
  • ):最终收盘组# 1
+1

这工作完美(接受)...请UpVote的问题,因为它是一个有效的问题SO。感谢 – ErickBest

+1

谢谢,我已经upvoted你的问题:) – anubhava

你可以试试这个,这是由多于一个大写字母(作为一组)捕获单词和小写字母(如另一组),然后添加之间的空间两组:

var str = new Array( 
 
"Inverted HFFSfor Primary Wrap Or Secondary Multi Wrap", 
 
"HFFSwith PDSPbackgroud Feederlense & Product Alignerigit", 
 
"HFFSwith Cooler JKLHbetween Feeder & Product Aligner") 
 

 
console.log(
 
    str.map(s => s.replace(/([A-Z]{2,})([a-z]+)/g, "$1 $2")) 
 
)