这是How to detect text language with jQuery and XRegExp to display mixed RTL and LTR text correctly的后续问题
我正在使用自定义Twitter Feed插件在网站上显示客户的Twitter feed。他用英语和阿拉伯语发推文。要测试推文是英语还是阿拉伯语,然后测试ltr或rtl的样式,我使用了开发人员建议的简单jQuery脚本。
jQuery('.tweet').each(function() {
if (jQuery(this).find('.tweet-text').text().match(/[a-z]/i)) {
jQuery(this).find('.tweet-text').addClass("ltr");
} else {
jQuery(this).find('.tweet-text').addClass("rtl");
}
});
对于大多数推文来说,这都很有效。但是,如果客户端在阿拉伯文推文中包含URL链接,则此方法不起作用,例如:
انهأنجمعتوالديون,مماالأمموسمّيتو,٣٠الشرقيةالفرنسيدنو。 وحتىاتّجةأيعدد,ببالفشلالعملياتبينأن,صفحةشعاراليمينيعرضمن。 يتبقّوكسبتعدمو。 ومنمسارحالمضيأم,أمدهالأداءيتمإذ。 https://www.google.co.uk/
如何从脚本的匹配元素中排除所有URL?
我找到了一个似乎可以从不同角度解决问题的答案。我没有尝试排除URL,我只是将推文中的第一个单词与英语或阿拉伯语匹配,然后从中设置文本样式。修改后的脚本现在是:
jQuery('.tweet').each(function() {
if (jQuery(this).find('.tweet-text').text().split(' ')[0].match(/[a-z]/i)) {
jQuery(this).find('.tweet-text').addClass("ltr");
} else {
jQuery(this).find('.tweet-text').addClass("rtl");
}
});