我的名字叫艾哈迈德(Ahmed),我有一个页面,其中包含一个文本区域和一个单击后通过Ajax在文本区域中发送数据的按钮,但是我想在发送之前替换一些字符串,并且这些字符串是
,{{ 1}},­
,&
以及JS代码中的
<
我看过一些站点,但找不到替代两个以上字符串的方法,例如底部的代码
$('#CT').click(function(){
var textarea=$('#ed_level_2');
textarea.val(textarea.val().replace(/&/g,"").replace(/</g,"").replace(/>/g,"").replace(/"/g,"").replace(/–/g,"").replace(/—/g,"").replace(/ /g,"").replace(/ /g,"").replace(/ /g,"").replace(/­/g,"").replace(/©/g,"").replace(/™/g,"").replace(/®/g,""));
});
答案 0 :(得分:1)
您可以使用竖线将多个字符串分开,从而一次替换多个字符串,
$('#CT').click(function(){
var textarea=$('#ed_level_2');
textarea.val(textarea.val().replace(/&/g,"").replace(/</g,"").replace(/>/g,"").replace(/"/g,"").replace(/–/g,"").replace(/—/g,"").replace(/ /g,"").replace(/ /g,"").replace(/ /g,"").replace(/­/g,"").replace(/©/g,"").replace(/™/g,"").replace(/®/g,""));
});
可以写为:
$('#CT').click(function(){
var textarea=$('#ed_level_2');
textarea.val(textarea.val().replace(/&|<|>|"|–|—| | | |­|©|™|®/g,""));
});
我不确定您访问过哪些网站,但是w3schools提供了许多不同的Javascript字符串函数的示例,包括replace():
答案 1 :(得分:1)
据我了解,您想一次替换(删除)一次多个。试试这个
textarea.val(textarea.val().replace(/\&(amp|lt|gt|quot|ndash|mdash)\;/gi,"")
更好地建立列表
const myList = ['amp', 'lt', 'gt', 'quot', 'ndash'];
const regex = new RegExp('\&' + myList.join('|') + '\;', 'gi');
textarea.val(textarea.val().replace(regex, ''));
如果您需要替换所有html实体,则只需使用正则表达式
textarea.val(textarea.val().replace(/\&[a-z]+\;/gi, ''));
答案 2 :(得分:0)
这取决于您要解决的问题,是否要替换特定的实体,是否剥离所有html或两者。
$(function() {
function replaceEntities(badString) {
return badString.replace(/&|<|>|"|–|—| | | |­|©|™|®/gi, "");
};
function stripHtml(badString) {
return $($.parseHTML(badString)).text();
}
$("form").on("submit", function(e) {
e.preventDefault();
var inval = $("#in").val();
$("#out1").val(replaceEntities(inval));
$("#out2").val(stripHtml(inval));
})
})
label {
display: inline-block;
margin: 5px;
padding: 5px;
border: 1px dotted #ccc;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form>
<label>Input
<textarea id="in" placeholder="try some junk html in here"></textarea>
</label>
<label>replaceEntities()
<textarea id="out1" readonly=readonly></textarea>
</label>
<label>stripHTML()
<textarea id="out2" readonly=readonly></textarea>
</label>
<input type="submit" />
</form>