[英]javascript regex to split at the point where lowercase changes to uppercase
[英]javascript Regex split UpperCase from lowerCase
我有一個像這樣的字符串:
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 for
2) HFFSwith成為HFFS with
3) PDSPbackgroud成為PDSP背景
4) JKLHbetween成為JKLHbetween
等等...
我的第一個本能是這樣的:
for(var i = 0; i<_str.length; i++){
if( (/*The needed Regex*/).test(_str[i]) ){
}
}
沒有成功...。似乎無法再考慮了!!
請幫忙,謝謝
indexOf
不接受rgex,您可以使用.replace
這樣。
您可以使用:
var repl = str.replace(/\B([a-z](?=[A-Z])|[A-Z](?=[a-z]))/g, '$1 ');
正則表達式分解:
\\B
:聲明單詞邊界不存在的位置 (
:開始捕獲#1組
[az](?=[AZ])
:如果前面有大寫字母,則匹配小寫字母 |
: 要么 [AZ](?=[az])
:如果前面有小寫字母,則匹配大寫字母 )
:結束組#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(/([AZ]{2,})([az]+)/g, "$1 $2")) )
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.