修改javascript,使mdash后面的字母为大写字母
我从这里的另一个问题中得到了很多帮助: 但我一直在尝试修改脚本,以便在标题中出现mdash时,其后面的字母也将大写,请参见。下面是脚本:修改javascript,使mdash后面的字母为大写字母,javascript,jquery,regex,string,Javascript,Jquery,Regex,String,我从这里的另一个问题中得到了很多帮助: 但我一直在尝试修改脚本,以便在标题中出现mdash时,其后面的字母也将大写,请参见。下面是脚本: $('ul.proper-case li a').each(function(){ var ele = $(this); ele.text(toProperCase(ele.text())); }); function toProperCase(str) { var noCaps = ['o
$('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添加不同的内容,但我不太确定如何做到这一点。到目前为止我试过的都不管用
有人能帮我知道在哪里修改脚本来实现这一点吗?你能不能也解释一下它在做什么,这样我就能试着理解它了?非常感谢。正则表达式
/\w[^\s\u2014]*/g
可以做到这一点
它将匹配一个单词字符(\w
),后跟满足这些要求的零个或多个(*
)字符:不是(^
)空白字符(\s
)或具有十六进制unicode索引2014(\u2014
)的字符,而&mdash代码>字符
正则表达式/\w[^\s\u2014]*/g
将执行此操作
它将匹配一个单词字符(\w
),后跟满足这些要求的零个或多个(*
)字符:不是(^
)空白字符(\s
)或具有十六进制unicode索引2014(\u2014
)的字符,而&mdash代码>字符
JSYK,如果将toProperCase
的签名更改为2个参数,则可以将外部部分重写为$('ul.proper-case li a').text(toProperCase)
。“到目前为止,我所做的一切都不管用。”-向我们展示你所做的。你应该投入一些时间和精力学习正则表达式。别把它当作侮辱。是的,我应该……谢谢。如果将toProperCase
的签名改为包含2个参数,则可以将外部部分重写为$('ul.proper-case li a').text(toProperCase)
。“到目前为止,我所做的一切都不管用。”-向我们展示你所做的。你应该投入一些时间和精力学习正则表达式。别把它当作侮辱。是的,我应该……谢谢。不受侮辱。哦,太好了。你能解释一下正则表达式是什么意思吗?我一直在那个正则表达式的不同部分尝试,但我猜是因为它是一个mdash,你必须使用u2014?这是mdash的代码吗?“如果你不介意帮我把这个分解一下,这样我就能理解了,那就太好了。”卡罗琳,我已经用解释更新了我的答案。我对您的正则表达式做了比\u2014
更多的更改。我明白了,谢谢。为什么要在w之前加上a/呢?@Carolyn这是regex文本分隔符。哦,不,我想我以为你的意思是在你的第一次之后,你对它做了更多的修改。好的,没关系。谢谢你的帮助,太好了。你能解释一下正则表达式是什么意思吗?我一直在那个正则表达式的不同部分尝试,但我猜是因为它是一个mdash,你必须使用u2014?这是mdash的代码吗?“如果你不介意帮我把这个分解一下,这样我就能理解了,那就太好了。”卡罗琳,我已经用解释更新了我的答案。我对您的正则表达式做了比\u2014
更多的更改。我明白了,谢谢。为什么要在w之前加上a/呢?@Carolyn这是regex文本分隔符。哦,不,我想我以为你的意思是在你的第一次之后,你对它做了更多的修改。好的,没关系。谢谢你的帮助。