用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')
如果之前有一个数字添加空格。