用Javascript分割Pascal案例(某些案例)

我一直在尝试使用JavaScript regex命令将EYDLessThan5Days之类的内容转换为EYD少于5天 。 有任何想法吗?

我用过的代码:

"EYDLessThan5Days" .replace(/([AZ])/g, ' $1') .replace(/^./, function(str){ return str.toUpperCase(); }); 

出: EYD少于5天
但还是给我错误的结果。

请帮我。 谢谢。

尝试以下function,它可以使用你可以抛出的各种字符串。 如果您发现任何缺陷,请在评论中指出。

 function camelPad(str){ return str // Look for long acronyms and filter out the last letter .replace(/([AZ]+)([AZ][az])/g, ' $1 $2') // Look for lower-case letters followed by upper-case letters .replace(/([az\d])([AZ])/g, '$1 $2') // Look for lower-case letters followed by numbers .replace(/([a-zA-Z])(\d)/g, '$1 $2') .replace(/^./, function(str){ return str.toUpperCase(); }) // Remove any white space left around the word .trim(); } // Test cases document.body.appendChild(document.createTextNode(camelPad("EYDLessThan5Days"))); document.body.appendChild(document.createElement('br')); document.body.appendChild(document.createTextNode(camelPad("LOLAllDayFrom10To9"))); document.body.appendChild(document.createElement('br')); document.body.appendChild(document.createTextNode(camelPad("ILikeToStayUpTil9O'clock"))); document.body.appendChild(document.createElement('br')); document.body.appendChild(document.createTextNode(camelPad("WhatRYouDoing?"))); document.body.appendChild(document.createElement('br')); document.body.appendChild(document.createTextNode(camelPad("ABC"))); document.body.appendChild(document.createElement('br')); document.body.appendChild(document.createTextNode(camelPad("ABCDEF"))); 

这对你有用

 "EYDLessThan5Days".replace(/([AZ][az])/g,' $1').replace(/(\d)/g,' $1'); 

会给你“EYD少于5天”

我在这做什么

 replace(/([AZ][az])/g,' $1') 

如果大写字母后跟小写字母,请在此之前添加空格

 replace(/(\d)/g,' $1') 

如果之前有一个数字添加空格。