javascript替换特殊字符

javascript替换特殊字符,javascript,Javascript,是否可以使用javascript字符串替换函数翻译®、ü等特殊字符?使用此语法 string.replace(/\xCC/g,''); 其中,“CC”是要替换的字符的十六进制字符代码。在本例中,我将替换为空字符串“” 特别针对问题中列出的字符: string.replace(/[\xAE\xFC]/g,''); 是的,而且非常简单: '®'.replace('®','anything'); 当然是 在Firebug控制台中运行此命令 "®ü".replace(/[®ü]/g,"replac

是否可以使用javascript字符串替换函数翻译®、ü等特殊字符?

使用此语法

string.replace(/\xCC/g,'');
其中,“CC”是要替换的字符的十六进制字符代码。在本例中,我将替换为空字符串“”

特别针对问题中列出的字符:

string.replace(/[\xAE\xFC]/g,'');

是的,而且非常简单:

'®'.replace('®','anything');
当然是

在Firebug控制台中运行此命令

"®ü".replace(/[®ü]/g,"replaced")
返回

“替换已替换”

你也可以

"®ü".replace(/[\xAE\xFC]/g,"Wohoo! ");
返回

"Wohoo! Wohoo! "
一个好的十六进制符号查找页面可以在


示例

在此页面上运行此jQuery

$(".post-text").text().replace(/®/g," ******** ")
返回

" is it possible to translate special characters like ******** , ü etc with javascript 
String replace function? Use this syntax... string.replace(/\xCC/g/,''); Where 'CC' is 
the hex character code for the char you are wanting to replace. In this example I am 
replacing with empty string ''. yes, and is as simple as can be: ' ******** '.replace('
 ******** ','anything'); Sure is! Running this in the Firebug console " ******** ü".
replace(/[ ******** ü]/g,"replaced") returned replacedreplaced "
(是的,我知道这个问题由来已久,但当我在寻找某个特定的问题时,它在谷歌的排名仍然很高,因此评论/回答可能会对一些人有所帮助):

以前的海报告诉过你如何替换单个字符。我想补充一点,这通常不是一个好主意(当然也有例外),因为有太多可能的“特殊角色”你必须考虑。你只会添加越来越多的替换,但你仍然会错过一些

一般来说,寻找一个内置函数来完成这项工作更容易、更安全,它将接受所有需要特殊处理的字符

在你的问题中,你没有告诉我们你需要它做什么-但我想3年后,这更适合其他有类似问题的人:

如果要将字符串作为参数传递,最好使用
encodeURIComponent
函数。也看看这个


如果你想对其他东西进行编码,最好找到一个内置函数来为你编码。也许或者(有点冗长,但对不应该做的事情有很好的解释)将有助于使用此JavaScript语句替换字符串中的所有特殊字符

var a1 = $('#txt').val().replace(/[^\x30-\x39\x41-\x5A\x61-\x7A\x20\x26\x28\x29\x2C\x27\x22\x2E\x2F\x26\x40\x5C\x7C\x3A\x2D]/g, ''); 
上述语句将替换集合0-9A-Za-z&(),““/&@\\ \ \:-中的其他语句,并使用nothing,即删除任何控制字符等

更好的选择是替换ASCII字符集以外的所有字符

 var a1 = $('#txt').val().replace(/[^\x20-\x7E]/g, ''); 
ASCII字符集开始于空格,即.\x20,结束于波浪号~i.e.\x7E。因此,替换除ASCII以外的所有其他字符


仅供参考:以防万一,如果您不知道使用了“^”符号,请指示给定的集合或字符以外的其他字符。

您可能需要使用
“\xDD”
”\uDDDD“
而不是实际字符,以使大多数编辑器更易于阅读和管理。在控制台的此页面上运行此命令不会返回预期结果。@El,啊!在全局标志后有一个额外的正斜杠。这就是为什么。@Mike啊,是的!谢谢,更新+1.如果你要投否决票,至少给出一个理由。这个答案符合要求,并给出了很好的例子。非常彻底。@alberto抱歉,我错误地给php提供了删除特殊字符的解决方案,希望您这次不要对我投反对票:)对于php,这将是$rec=preg_replace('/[^\x20-\x7E]/','',trim($rec));这将从变量中删除所有不可打印的字符。