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])){
}
}
没有成功....似乎无法进一步思考!
请帮帮忙,谢谢
答
indexOf
不接受rgex,你可以使用一个.replace
这样。
您可以使用:
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
答
你可以试试这个,这是由多于一个大写字母(作为一组)捕获单词和小写字母(如另一组),然后添加之间的空间两组:
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"))
)
你的大写范围后没有'+'吗? –
经过测试。测试()仍然没有成功...请删除您的DownVote。谢谢 – ErickBest
'.replace'方法不接受正则表达式作为替代参数。 – revo