Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/73.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
Javascript.replace()-保留HTML元素_Javascript_Html - Fatal编程技术网

Javascript.replace()-保留HTML元素

Javascript.replace()-保留HTML元素,javascript,html,Javascript,Html,这是我的js函数 function con (text_input){ return text_input .replace(/O/g, 0) .replace(/I/g, 1) .replace(/o/g, 0) .replace(/i/g, 1) .replace(/t/g, 4) .replace(/d/g, 9) } 在这种情况下,我需要保留所有html元素,如,,等等,但此函数也替

这是我的js函数

function con (text_input){
    return text_input
        .replace(/O/g, 0)
        .replace(/I/g, 1)
        .replace(/o/g, 0)
        .replace(/i/g, 1)
        .replace(/t/g, 4)
        .replace(/d/g, 9)
}
在这种情况下,我需要保留所有html元素,如
,等等,但此函数也替换html元素。前任:
console.log(con('OIoitd'))
返回
010149
但我需要
010149
。我该怎么做

更新了我的代码。希望这句话能说出来,是的,我正在使用jquery:

var text_input ='<td>OIoitd</td>';
function con (text_input){
    //getting text to be replaced
    var innerText = $(text_input)[0].innerHTML;
    //getting text to be replaced with
    var newInnerText = $(text_input)[0].innerHTML.replace(/O/g, 0).replace(/I/g, 1).replace(/o/g, 0).replace(/i/g, 1).replace(/t/g, 4).replace(/d/g, 9);
    //replacing text 
    return text_input.replace(innerText,newInnerText);
}
var text_input='oitd';
函数con(文本输入){
//获取要替换的文本
var innerText=$(文本输入)[0];
//获取要替换为的文本
var newInnerText=$(text\u input)[0].innerHTML.replace(/O/g,0).replace(/I/g,1).replace(/O/g,0).replace(/I/g,1).replace(/t/g,4).replace(/d/g,9);
//替换文本
返回文本\u input.replace(innerText,newInnerText);
}

要么只传入内部文本,而不是整个dom元素,要么让您的正则表达式更智能一点,不在其中搜索,除非您在某种受限的HTML子集中,否则您需要一个HTML解析器。但不需要是基于树的;您可以在
text
事件中用替换,注意正确地退出。@AndrewP是的,但我不知道怎么做:(和内容动态你在寻找服务器端或客户端解决方案吗?如果不是
,而是一些其他html元素,那么?我的
text\u输入包含html元素。你应该始终解释代码中的答案是什么。如果你引入了问题中未提及的库,你会使用哪些库。
$
最有可能是jQuery,但从问题来看,不清楚OP是使用此脚本服务器端还是客户端。除此之外,这将-忽略您为
td
硬编码它-仅当
text\u input
始终以
text的形式且没有任何html标记时才起作用,因为它将删除该脚本中的所有html标记<代码>文本\u输入
。我的不好。我会努力工作,不会对父元素进行硬编码。