javascript Regex从lowerCase拆分UpperCase

时间:2017-07-24 13:59:12

标签: javascript regex string uppercase lowercase

我有一个字符串:

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

如何分开ie

1) HFFS for 成为 HFFS for

2) HFFSwith 成为 HFFS

3) PDSPbackgroud 成为 PDSP背景

4) JKLH 之间 JKLH

依此类推......

我的第一个问题是:

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


     }  
}

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

请帮忙,谢谢

2 个答案:

答案 0 :(得分:3)

ListViewItem.DataContext不接受rgex,你可以使用这样的indexOf

您可以使用:

.replace

RegEx Demo

RegEx分手:

  • var repl = str.replace(/\B([a-z](?=[A-Z])|[A-Z](?=[a-z]))/g, '$1 '); :断言字边界不
  • 的位置
  • \B:开始捕获组#1
    • (:如果前面有大写字母,则匹配小写字母
    • [a-z](?=[A-Z]):或
    • |:如果前面有小写字母,则匹配大写字母
  • [A-Z](?=[a-z]):结束关闭组#1

答案 1 :(得分:1)

您可以尝试这样做,捕获由多个大写字母(作为一个组)和小写字母(作为另一个组)组成的单词,然后在两个组之间添加一个空格:

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"))
)