更换'<'&'&燃气轮机';使用javascript

更换'<'&'&燃气轮机';使用javascript,javascript,jquery,regex,string,Javascript,Jquery,Regex,String,我正试图用javascript将一封解析过的电子邮件附加到文本区,这被证明是特别困难的,因为等电子邮件地址中有 这是一个我的行动情况的例子。 因此,我试图在上执行str.replace,但我所做的一切似乎都不起作用。有人知道怎么做吗 下面是我的代码的一个简单摘录。 我还包括jQuery HTML <textarea class="form-control template_data" id="content" name="content" rows="8" cols="80">&l

我正试图用javascript将一封解析过的电子邮件附加到
文本区
,这被证明是特别困难的,因为
等电子邮件地址中有

这是一个我的行动情况的例子。

因此,我试图在
上执行
str.replace
,但我所做的一切似乎都不起作用。有人知道怎么做吗

下面是我的代码的一个简单摘录。 我还包括jQuery

HTML

<textarea class="form-control template_data" id="content" name="content" rows="8" cols="80"></textarea>

Javascript

var my_text = "From: Foo Bar <foo@bar.com> Date: Sat, Apr 8, 2017 at 2:29 PM";
var regEx = '/<|>/g';
my_text.replace(regEx, "*");
my_text = my_text.replace("&lt;", "*");
my_text = my_text.replace("&gt;", "*");
$('#content').append(my_text);
alert(my_text);
var my_text=“From:Foo-Bar日期:2017年4月8日星期六下午2:29”;
var regEx='//g';
my_text.replace(regEx,“*”);
my_text=my_text.replace(“,”*”);
my_text=my_text.replace(“,”*”);
$(“#内容”)。追加(我的#文本);
警报(my_文本);
PS


我想没有办法将
<|>
附加到
文本区域中,因为html会认为我在发布html。如果有人知道怎么做,请让我知道

当字符串中不存在转义字符时,尝试替换这些转义字符

更改:

my_text = my_text.replace("&lt;", "*");
my_text = my_text.replace("&gt;", "*");
致:

my_text=my_text.replace(“,”*”);

您的问题似乎是一个不正确的正则表达式。 请尝试以下操作:

my_text = my_text.replace(/(\<|\>)/g, '');
my\u text=my\u text.replace(/(\)/g',);

使用RegExp,非常简单:)


不要忘记字符串的不变性

一个通用的HTML消毒器函数实际上只需要一个
。replace()
调用:

var sanitize = function() {
  var map = { "<": "&lt;", ">": "&gt;", "&": "&amp;" },
      rx = /[<&>]/g;

  return function(text) {
    return text.replace(rx, function(match) {
      return map[match];
    };
  };
}();
var sanitize=function(){
变量映射={“:”,“&”:“&;”},
rx=/[]/g;
返回函数(文本){
返回文本。替换(接收,功能(匹配){
返回映射[匹配];
};
};
}();
.replace()
回调函数获取每个匹配的特殊字符,并将其用作在映射中查找替换项的键

这样,如果在准备页面时使用内容上的功能,则可以保留
的实际内容


请注意,在使用JavaScript设置
.value
属性时,您不必担心这一点。

为什么不
my_text.replace(“,”*”);
?regex=/[]/gif我在您的小提琴中使用以下命令,它会起作用:
my_text=my_text.replace(“,“*”);
使用<>而不是代码如果将这些字符转换为HTML实体,则可以在
中包含这些字符(convert
Awesome对第一行有效。现在我有两个问题。为什么正则表达式不考虑这个问题?我如何使它跨越多行文本?所以你清除了所有的换行符,然后运行它。这看起来是一个非常干净的解决方案。不仅如此,而且在第一次替换中有一个细节,没有重新分配你甚至不需要另外两个“替换”@ThomasValadez为什么要将字符更改为“*”?为什么不只是HTML转义它们?@Pointy我在尝试一些东西,我想这是最简单的选择。你是在说这样的事情吗?我在说类似我的答案:)很抱歉问了一个愚蠢的问题,但是这个函数的调用对象是什么?谁将
text
传递给第一个内部函数?@AlexanderSolonik要调用的函数是
sanitize()
。如果要调用
sanitize(“Hello World”)
,则返回值将是字符串
“bHello World/b”
完美!明白了:)
var regEx = new RegExp("[<>]","g");
yourString = yourString.replace(regEx, "yourReplace");
var sanitize = function() {
  var map = { "<": "&lt;", ">": "&gt;", "&": "&amp;" },
      rx = /[<&>]/g;

  return function(text) {
    return text.replace(rx, function(match) {
      return map[match];
    };
  };
}();