修改javascript,使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

我从这里的另一个问题中得到了很多帮助:

但我一直在尝试修改脚本,以便在标题中出现mdash时,其后面的字母也将大写,请参见。下面是脚本:

    $('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文本分隔符。哦,不,我想我以为你的意思是在你的第一次之后,你对它做了更多的修改。好的,没关系。谢谢你的帮助。