javascript 正则表达式将大写字母从小写字母中分离出来
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) PDSP 背景 变为 PDSP 背景
4) JKLHbetween 变成 JKLHbetween
等等...
我的第一直觉是这样的:
for(var i = 0; i<_str.length; i++){
if( (/*The needed Regex*/).test(_str[i]) ){
}
}
没有成功....似乎无法进一步思考!!
请帮忙,谢谢
你可以试试这个,捕获由多个大写字母(作为一组)和小写字母(作为另一组)组成的单词,然后在两组之间添加一个 space:
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, " "))
)
indexOf
不接受 rgex,您可以像这样使用 .replace
。
您可以使用:
var repl = str.replace(/\B([a-z](?=[A-Z])|[A-Z](?=[a-z]))/g, ' ');
正则表达式分解:
\B
: 断言单词边界不存在的位置
(
: 开始捕获第 1 组
[a-z](?=[A-Z])
: 如果前面有大写字母则匹配小写字母
|
: 或
[A-Z](?=[a-z])
: 如果前面有小写字母则匹配大写字母
)
: 结束关闭组#1
我得到了一个像这样的字符串:
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) PDSP 背景 变为 PDSP 背景
4) JKLHbetween 变成 JKLHbetween
等等...
我的第一直觉是这样的:
for(var i = 0; i<_str.length; i++){
if( (/*The needed Regex*/).test(_str[i]) ){
}
}
没有成功....似乎无法进一步思考!!
请帮忙,谢谢
你可以试试这个,捕获由多个大写字母(作为一组)和小写字母(作为另一组)组成的单词,然后在两组之间添加一个 space:
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, " "))
)
indexOf
不接受 rgex,您可以像这样使用 .replace
。
您可以使用:
var repl = str.replace(/\B([a-z](?=[A-Z])|[A-Z](?=[a-z]))/g, ' ');
正则表达式分解:
\B
: 断言单词边界不存在的位置(
: 开始捕获第 1 组[a-z](?=[A-Z])
: 如果前面有大写字母则匹配小写字母|
: 或[A-Z](?=[a-z])
: 如果前面有小写字母则匹配大写字母
)
: 结束关闭组#1