使用jQuery从String中删除“»”

时间:2011-12-23 23:18:00

标签: javascript jquery

我有<div id="bread"></div>,我正在尝试显示其中一个字符串包含Tab3 »的面包屑。

就像Tab1&gt; Tab2&gt; Tab3 »&gt; Tab4 >除了arrow-right.png&raquo图片。

我想从»删除Tab3 »»

我想搜索所选标签中是否包含&raquo"",如果有,我想将其替换为Tab3 »,以便Tab3变为{ {1}}。

我已经尝试了以下但它似乎不起作用。

$("document").ready(function() {
    var crumbs = $("a.selected");

    jQuery.each(crumbs, function() {

        if(this != crumbs.get([0])) {
            $("#bread").append("&nbsp;");           
        }           
        $("#bread").append("<img src='<c:url value="/resources/images/arrow-right.png" />' />" + "&nbsp;");

            var crumb = $(this).html();
            var slicedCrumb;
            if(crumb.indexOf(' &raquo; ') != -1) {
                slicedCrumb = $(this).html().replace(' &raquo; ', '');              
                $("#bread").append(slicedCrumb);
            }
            else {
                $("#bread").append(crumb);
            }

     });
}); 

我还尝试在»的地方使用&raquo;,但这似乎无效。

$("document").ready(function() {
    var crumbs = $("a.selected");

    jQuery.each(crumbs, function() {

        if(this != crumbs.get([0])) {
            $("#bread").append("&nbsp;");           
        }           
        $("#bread").append("<img src='<c:url value="/resources/images/arrow-right.png" />' />" + "&nbsp;");

            var crumb = $(this).html();
            var slicedCrumb;
            if(crumb.indexOf(' » ') != -1) {
                slicedCrumb = $(this).html().replace(' » ', '');                
                $("#bread").append(slicedCrumb);
            }
            else {
                $("#bread").append(crumb);
            }

     });
});

我花了很长时间阅读关于给定主题的其他帖子,但不知怎的,我无法让它工作。有人能帮助我理解我在这里缺少什么吗?我正在使用jquery-1.5.js来运行此代码。我是否需要使用较新版本的jquery或任何其他库来使其正常工作?

2 个答案:

答案 0 :(得分:3)

slicedCrumb = $(this).html().replace(/\»/g, '');

重要的部分是逃避»角色。我还添加了全局(g)标志,这样如果有多个匹配正则表达式的实例,它们都将被删除。

以下是演示:http://jsfiddle.net/YXXZs/1/

<强>更新

如果要在尝试替换字符之前检查字符是否存在,则可以使用.match()

var text = $(this).html();
if (text.search(/\»/) > -1) {
    slicedCrumb = text.replace(/\»/g, '');
}

以下是演示:http://jsfiddle.net/YXXZs/4/

.match()的文档:https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/match

答案 1 :(得分:0)

尝试使用

slicedCrumb = $(this).html().replace('/[&]raquo[;]/ ', '');