在ASCII表中删除127以上的任何字符?

时间:2014-06-29 13:23:24

标签: jquery unicode strip

我正在尝试删除奇怪的字符。这些奇怪的角色显然很难移除。在这个jsfiddlee中,我从stackoverflow这样的答案中包含了很多例子,但是我无法让它工作。

$("textarea").text().replace(/[^A-Za-z 0-9 \.,\?""!@#\$%\^&\*\(\)-_=\+;:<>\/\\\|\}\{\[\]`~]*/g, '');
$("textarea").text().replace(/[\uE000-\uF8FF]/g, '');
$("textarea").text().replace(/[^\x00-\x7F]/g, "");
$("textarea").text().replace(/./g,function(char){
    return char.charCodeAt(0)<=255 ? char : '<b>' + char + '</b>';
});

http://jsfiddle.net/vc39F/1/

我刚刚意识到我忘了将替换的文本添加到text()中,因此textarea不会被替换。

textarea包含奇怪的字符,那些是我想要删除的字符。我做错了什么?

1 个答案:

答案 0 :(得分:3)

扩展列表中的第三个选项:

$("textarea").text(function(_, value) {
    return value.replace(/[^\x00-\xFF]/g, '');
});

似乎按预期工作,但是可以控制ASCII范围内的字符。最好的是删除不在可打印范围内的字母。

$('textarea').text(function(_, value) {
    return value.replace(/[^ -~]/g, '');
});

Demo