【发布时间】:2016-04-04 06:56:00
【问题描述】:
我正在开发一个 html 工具来研究古代拉丁语。
有一个练习,学生必须点击某个单词,
其中有一个带有拉丁语的div:
<div class="clickable">
Cum a Romanis copiis vincĭtur măr, Gallia terra fera est.
Regionis incŏlae terram non colunt, autem sagittis feras necant et postea eas vorant.
Etiam a_femĭnis vita agrestis agĭtur,
miseras vestes induunt et cum familiā in parvis casis vivunt.
Vita secūra nimiaeque divitiae a Gallis contemnuntur.
Gallorum civitates acrĭter pugnant et ab inimicis copiis timentur.
Galli densis silvis defenduntur, tamen Roma feram Galliam capit.
</div>
在我的 javascript 中,我使用正则表达式将所有单个单词包装成 <span>,然后应用一些操作。
var words = $('div.clickable');
words.html(function(index, oldHtml) {
var myText = oldHtml.replace(/\b(\w+?)\b/g, '<span class="word">$1</span>')
return myText;
}).click(function(event) {
if(!$(event.target).hasClass("word"))return;
alert($(event.target).text());
}
问题是包含ĭ, ŏ, ā的单词没有正确换行,而是按照这些字符的对应进行划分。
如何正确匹配这类单词?
【问题讨论】:
-
尝试使用XRegExp
-
更多建议请见this answer。
标签: javascript html regex