2013-10-03 64 views
0

我已经从一些关于第一个较大的字母主题的研究中构建了该脚本。它的功能是允许首字母跨度类应用于特定的类(页面标题),并且它的工作非常好 - 即用span类首字母包装每个首字母,这使我可以标题中每个单词的第一个字母大于CSS(我已经通过CSS为课程打开了capitilize)。我一直在努力完成的事情是,在正则表达式中添加一个单词,缩写或其他3-4个字母的术语列表,以便这个列表中的任何单词都包含一个首字母类。这是我迄今为止的代码。我已经在寻找一个解决方案,但RegEx很难理解我的想法。由于Reg表达式包括单词列表

var elements = document.getElementsByClassName("entry-title") 
    for (var i=0; i<elements.length; i++){ 
     elements[i].innerHTML = elements[i].innerHTML.replace(/\b([a-z])([a- z]+)?\b/gim, "<span class='first-letter'>$1</span>$2") 
    } 

这里是我已经开始http://jsfiddle.net/5Sgve/38/

回答

0

如果你有话数组的小提琴,简称words = ["share", "link" ... ],你得到这样regex = new RegExp("([a-zA-Z])(" + words.join("|") + ")", "gi");

正则表达式请参见本的jsfiddle:http://jsfiddle.net/5Sgve/

+0

我一直在玩你所做的小提琴,但无法得到这个工作。我以一个如何工作的例子开始了一个小提琴。基本上MD&FN-P将是列表中的单词。无论列表中的任何单词/缩写都将是RED&LARGER。 (即在他们周围有第一个字母的span类)。我不想让任何 -/*或其他字符获得第一个字母类,只是实际的字母。 (即,A-Z,a-z)。谢谢。 –

0

好吧,我得到它的工作。谢谢您的帮助!这里是更新的小提琴任何人有兴趣完成这一点。

@ jsfiddle.net/5Sgve/421/

+0

它看起来不像是实际使用数组? http://jsfiddle.net/5Sgve/422/ – thgaskell

相关问题