如何使用javascript从字符串中删除特殊字符

时间:2013-08-15 10:44:58

标签: javascript

我有以下字符串值显示在文本区域中,我想从字符串中删除第一个字符@@ * n | n。

字符串如下:      符号-001      @@ * n | nClaimant名称      @@ * N | nTransaction

我使用下面的代码来处理删除特殊字符

var paramVal1 = parent.noteText; //paramVal1 will have the string now
var pattern = /[@@*n|n]/g;
var paramVal1 = paramVal1.replace(pattern,'');
document.getElementById("txtNoteArea").value = paramval1;//appending the refined string to text area

对于上面使用的代码,我将获得输出字符串,如下所示

符号-001 | Claimat名称 //这里'n'缺少,我有一个额外的'|'字符 | Transactio //'n'在这里也缺失了一个额外的'|'字符

请帮助删除字符@@ * n | n而不影响其他值

4 个答案:

答案 0 :(得分:1)

你的正则表达式所说的是“删除以下任何字符:@|*n”。显然这不是你想要的!

请改为:/@@\*n\|n/g

这表示“删除文字字符串@@*n|n”。反斜杠删除了*|的特殊含义。

答案 1 :(得分:-1)

您在模式中使用正则表达式保留字符,您需要将它们转义 您可以使用以下表达式:

var pattern = /[\@\@\*n\|n]/g;

答案 2 :(得分:-1)

我认为使用此/ [@@ * n \ | n] / g regEx

答案 3 :(得分:-1)

如果您想要在问题上替换第一个匹配项,则不需要使用正则表达式。只要你转义星号,就会有一个简单的字符串:

var str = "Symbol-001 @@*n|nClaimant Name @@*n|nTransaction";
var str2 = str.replace("@@\*n|n", ""); //output: "Symbol-001 Claimant Name @@*n|nTransaction"

如果要替换所有匹配项,可以使用正则表达式,转义所有具有特殊含义的字符:

var str3 = str.replace(/\@\@\*n\|n/g, ""); //output: "Symbol-001 Claimant Name Transaction"

看看这个正则表达式构建器,可能派上用场 - http://gskinner.com/RegExr/