Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
替换&;至&书信电报;lt至<;及>;javascript中的gt到gt_Javascript - Fatal编程技术网

替换&;至&书信电报;lt至<;及>;javascript中的gt到gt

替换&;至&书信电报;lt至<;及>;javascript中的gt到gt,javascript,Javascript,我想用javascript将&替换为&。这是我的示例代码。EmployeeCode 可能包含&。EmployeeCode从Datagrid中选择,其显示在“txtEmployeeCode”文本框中。但是如果EmployeeCode包含任何&,则它会在文本框中显示&。如何从EmployeeCode中删除&?有人能帮忙吗 function closewin(EmployeeCode) { opener.document.Form1.txtEmployeeCode.valu

我想用javascript将
&
替换为
&
。这是我的示例代码。EmployeeCode 可能包含&。EmployeeCode从Datagrid中选择,其显示在“txtEmployeeCode”文本框中。但是如果EmployeeCode包含任何
&
,则它会在文本框中显示
&
。如何从EmployeeCode中删除
&
?有人能帮忙吗

function closewin(EmployeeCode) {
     opener.document.Form1.txtEmployeeCode.value = EmployeeCode;
     this.close();
}
试试这个:

var str = "&amp;";
var newstring = str.replace(/&amp;/g, "&");
有关更多信息,请参见。

,其中包括:

function unEntity(str){
   return str.replace(/&amp;/g, "&").replace(/&lt;/g, "<").replace(/&gt;/g, ">");
}

function closewin(EmployeeCode) {
     opener.document.Form1.txtEmployeeCode.value = unEntity(EmployeeCode);
     this.close();
}

干杯

如果您不想替换所有这些html实体,您可以使用以下方法作弊:

var div = document.createElement('textarea');
div.innerHTML = "bla&amp;bla"
var decoded = div.firstChild.nodeValue;
您的转换值现在已解码


请参见

无正则表达式滥用方法:

 function closewin(EmployeeCode) {
      opener.document.Form1.txtEmployeeCode.value = EmployeeCode.split('&amp').join('&');
      this.close();
 }

他自找的。看问题标题,我被纠正了。我真的应该更仔细地阅读问题Regex?!你能不能把效率提高一点?也许jQuery可以帮上忙。@bjb568微优化是邪恶的,正则表达式非常适合这个问题谢谢你的回答。但我不知道这为什么不起作用。Regex是一个功能强大的工具2。这是让它替换所有&实例而不是第一个实例的唯一方法Wha?str.replace(“&;”、“&”)@bjb568哦,你一点也不知道就批评。你的建议只会取代第一个巧合。使用
str=“A&;B&;C”
您的代码将失败。在批评“replace()方法返回一个新字符串,其中包含替换所替换的模式的部分或全部匹配项。该模式可以是字符串或RegExp,替换项可以是字符串或为每个匹配项调用的函数。”之前请先了解。第一个方法没有任何内容。@bjb568哦,孩子,请仔细阅读文档。或者最好打开您的控制台并对其求值:
“A&;B&;C”。替换(“&;”、“&”)它不会按应有的方式返回
A&B&C
。使用JavaScription的“替换”功能,您将为<和>再次执行此操作。别忘了这是可选的;在实体背后。
 function closewin(EmployeeCode) {
      opener.document.Form1.txtEmployeeCode.value = EmployeeCode.split('&amp').join('&');
      this.close();
 }