我从这里的另一个问题中得到了很多帮助:Transform ALL CAPS to Proper Case using CSS and jQuery
但是我一直在尝试修改脚本,以便如果标题中出现 mdash,则它后面的字母也将大写,请参见http://jsfiddle.net/wm5kZ/5/。这是脚本:
$('ul.proper-case li a').each(function(){
var ele = $(this);
ele.text(toProperCase(ele.text()));
});
function toProperCase(str)
{
var noCaps = ['of','a','the','and','an','am','or','nor','but','is','if','then',
'else','when','at','from','by','on','off','for','in','out','to','into','with'];
return str.replace(/\w\S*/g, function(txt, offset){
if(offset != 0 && noCaps.indexOf(txt.toLowerCase()) != -1){
return txt.toLowerCase();
}
return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();
});
}
我一直在尝试理解正则表达式,并尝试为 mdash 输入不同的内容,但我不太确定该怎么做。到目前为止,我没有尝试过任何工作。
谁能帮我知道在哪里修改脚本来做到这一点?您能否也解释一下它在做什么,以便我尝试理解它?非常感谢。