首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JavaScript French实体法语

JavaScript French实体法语
EN

Stack Overflow用户
提问于 2011-02-04 13:38:56
回答 3查看 374关注 0票数 6

我有一个.NET MVC页面,其中包含一个项目列表,每个条目在rel中都有<%: %>编码的描述。我希望能够使用包含我的搜索查询的rel搜索所有项目。

其中一个字段的值带有has实体rel='D&eacute;coration'

我在搜索框中键入"Décoration“,让jQuery搜索所有包含(indexOf != -1)值的'rel‘属性的元素:

没有结果!

为什么?因为Décoration != D&eacute;coration

比较这两种情况的最佳解决方案是什么?(必须适用于所有特殊的重音字符,而不仅仅是&eacute;)

P.S. (我在两边都尝试了逃逸/取消逃逸,也尝试过将其附加到div中,然后将其作为文本阅读,这会替换危险的东西,但不会替换é(因为它在utf-8中是有效的)。

EN

回答 3

Stack Overflow用户

发布于 2011-05-09 14:06:29

由于&eacute;和like是html实体,所以可以使用乱码字符串设置临时div的html内容,并使用元素的文本内容检索解码的字符串。浏览器将为您完成解码工作。

使用jQuery:

代码语言:javascript
复制
function searchInRel(needle) {
    return $('[rel]').filter(function(i,e) {
        var decodedText = $('<div/>').html(e.attr('rel')).text();
        return (decodedText.indexOf(needle) != -1);
    };
}

只使用DOM:

代码语言:javascript
复制
function decodeEntities(text) {
    var tempDiv = document.getElementById('tempDiv');
    tempDiv.innerHTML = text;
    return tempDiv.textContent;
}
票数 2
EN

Stack Overflow用户

发布于 2011-05-09 14:17:03

如果您使用UTF-8编码为您的页面提供服务,则不需要对所有重音字符使用实体。问题解决了。

票数 1
EN

Stack Overflow用户

发布于 2011-04-06 18:56:28

您可以对html实体进行解码。只需从这里复制两个javascript方法

代码语言:javascript
复制
var decoded = 'Décoration';
var entity = html_entity_decode('D&eacute;coration');
console.log(decoded == entity);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4898579

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档