Javascript(不适用于Web)需要替换所有有问题的字符

Javascript (Not for Web) need to replace all offending characters

本文关键字:替换 有问题 字符 不适用 适用于 Web Javascript      更新时间:2023-09-26

我正在为一个允许这种脚本扩展其自身功能的应用程序编写javascript。(埃斯科)这不适用于网络。我有各种文本字符串,其中包含各种不需要的字符,我需要替换这些字符。我所拥有的适用于所有内容,除了双引号。这是我所拥有的:

function f ()
  {
//Remove Illegal characters and replace with an underscore
//List of Illegal chars
var re = /['*'"'%'''@'#'$'%'^'&'*'{'}'[']'(')[']]/gi;
var str = "SANTA FE NATURAL TOBACCO COMPA"NY INC %#$%^ American Spirit";
var newstr = str.replace(re, "");
//Remove double underscores
var re = /_+/g;
var str = newstr;
var newstr = str.replace(re, '_');
return (newstr)
  }
f ();

var str 随每个订单而变化,因此它总是不同的。我可以将 var str 行更改为:var str = 'SANTA FE NATURAL TOBACCO COMPA"NY INC %#$%^ American Spirit';(单引号)我可以替换双引号,但不能替换单引号。我需要两个都走了。我怎样才能完成??

我对JS的经验非常有限,要温柔。

谢谢

当我在控制台中运行它时,您的代码消除了",除了我必须在str的定义中转义它('")。

当你对自己说"这可以通过正则表达式解决"的那一刻,你现在有两个问题。

您应该使用以下两个功能:

var encoding = encodeURIcomponent('SANTA FE NATURAL TOBACCO COMPA"NY INC %#$%^ American Spirit');

var decoding = decodeURIcomponent(encoded);

除非您使用 node 处理这些内容.js否则最好使用缓冲区。

var 编码 = new Buffer('SANTA FE NATURAL TOBACCO COMPA"NY INC %#$%^ American Spirit');

encoded.toString();

你的代码看起来不错;问题是你没有正确输入str。编写文字'字符串时,必须在字符串中转义' s;同样适用于"字符串。将字符串硬编码到代码中时,这是不可避免的。若要在不转义任何字符的情况下输入这些字符串,请从用户读取str,而不是将其写入源。