我对正则表达式并不是很满意,而且我也没有完全理解这一点,我从中得到的结果是,它找到每个h1并为它的最后一个词添加一个类。对此正则表达式的解释
$("h1").html(function(index, old) {
return old.replace(/(\b\w+)$/, '<span class="myClass">$1</span>');
});
我试图让它通过最后两个字符
我对正则表达式并不是很满意,而且我也没有完全理解这一点,我从中得到的结果是,它找到每个h1并为它的最后一个词添加一个类。对此正则表达式的解释
$("h1").html(function(index, old) {
return old.replace(/(\b\w+)$/, '<span class="myClass">$1</span>');
});
我试图让它通过最后两个字符
这个(写得不好)的正则表达式在输入结尾找到一个单词字符序列(拉丁字母,数字和下划线)。同样可以实现更简单:/\w+$/
,因此\b
也不parens在这里实际上是必要的。
要匹配两个最后的话,你会需要像
/\w+(?=(\W+\w+)?$)/g
,这意味着“一个字,后面可以跟另一个字输入年底前”。
要匹配两个最后的字符 - 嗯,这是你应该能够自己弄清楚的东西(提示:正则表达式语言中的任何字符是.
(点))。
在这里工作是和解释:
/ : regex delimter
( : begin capture group #1
\b : word boundary
\w+ : one or more word character (same as [a-zA-Z0-9_]+)
) : end of group
$ : end of string
/ : regex delimiter
它的字符串的最后一个字相匹配,即的硬道理h1标签。
我很难用初学者的眼光看待事物,但我不认为这个“解释”实际上可以解释任何事情。为他显示_why_他需要'\ b'和所有这些东西(提示:他没有)。 – georg 2014-12-02 13:51:17
我怎样才能得到最后两个字符? – 2014-12-02 13:43:03
@CaioKawasaki:更新。 – georg 2014-12-02 13:44:48
@georg好的答案,很好的挑战= D – 2014-12-02 13:45:42