使用jQuery或JavaScript从字符串中移除特殊字符(&符号)

3
我正在尝试实现一些看起来应该很简单的东西,但我找不到任何在线帮助。我有一些CSS类名在输出时带有&符号(这是由于我使用的系统所致,无法避免)。我想使用一点jQuery来简单地删除&符号,因此像这样的字符串:
class="Middle&East"
将变为
class="MiddleEast"
非常感谢您的帮助。
谢谢

1
你能发布一下上下文吗?这个class="Middle&East"是在HTML中还是JS中?为什么要用jQuery修改它(既然可以在客户端完成)? - nhahtdh
6个回答

7
为了替换它们,您可以执行以下操作:
$('[class*=\\&]').each(function()  {
    $(this)[0].className = $(this)[0].className.replace(/&/g,"");      
})
​

你能解释一下 "/&/g" 是什么吗?我从未见过这种符号表示。 - sbunny
@sbunny 这是一个正则表达式 - Alex K.

5

尝试:

var class="Middle&East"
class.replace('&', '');

4
这将只替换第一次出现的内容。请改用/&/g - Rob W
+1,您可能需要更新答案以进行全局替换,以防需要这样做。 - Abhilash

1

如果您正在使用jQuery,则必须转义&

请尝试

$(".Middle\\&East").removeClass("Middle&East").addClass("MiddleEast");

演示

从类名中删除&的通用解决方案

$(function(){
    $('[class*="&"]').each(function(){
        var $this = $(this),cname = $this.attr('class').replace(/&/g,'');
        $this.attr('class',cname)

    })

})

0

也许是类似于这样的东西

$(".Middle&East").removeClass("Middle&East").addClass("MiddleEast");

1
虽然那样做可能管用,但我不总是知道类名会是什么,所以需要使用更加动态的方法。 - user795918

0

这个对我来说似乎有效:

$(function() {
    $('[class="Middle&East"]').toggleClass('Middle&East MiddleEast');
});

这是一个 jsfiddle:http://jsfiddle.net/U3r7G/

0
var className = $(element).attr('class');
var modifiedClass = className.replace('&', '');
$(element).attr('class', modifiedClass);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接