在发送表单之前,在javascript中替换冒号

在发送表单之前,在javascript中替换冒号,javascript,Javascript,我有一个文本输入搜索字段。我想给用户输入的任何冒号添加一个转义反斜杠。这就是我现在拥有的: 走! document.getElementById(“搜索按钮”).addEventListener('click',function()){ 让text=document.getElementById('input').value; 设regex=/:/gi; 让new_text=text.replaceAll(regex,“\:”); }); \是转义序列中使用的字符串中的特殊字符。如果你想在字

我有一个文本输入搜索字段。我想给用户输入的任何冒号添加一个转义反斜杠。这就是我现在拥有的:


走!
document.getElementById(“搜索按钮”).addEventListener('click',function()){
让text=document.getElementById('input').value;
设regex=/:/gi;
让new_text=text.replaceAll(regex,“\:”);
});

\
是转义序列中使用的字符串中的特殊字符。如果你想在字符串中添加一个
\
,你也必须对它进行转义

let new_text = text.replaceAll(regex, "\\:");

因为反斜杠有一个特殊的含义,你必须转义这个字符

您可以通过
\\:


走!
document.getElementById(“搜索按钮”).addEventListener('click',function()){
让text=document.getElementById('input').value;
设regex=/:/gi;
让new\u text=text.replaceAll(regex,“\\:”);
document.getElementById('input')。value=new\u text;//新代码
});

即使在使用附加反斜杠修复替换项时,您的代码仍然无法工作,因为您还需要使用新值更改表单字段的值,如下所示“新代码”:


走!
document.getElementById(“搜索按钮”).addEventListener('click',函数(){
让text=document.getElementById('input').value;
设regex=/:/gi;
让new\u text=text.replaceAll(regex,\\:“”;//修复
document.getElementById('input')。value=new\u text;//新代码
});

这是否回答了您的问题?
<form role = "form" action="..." method="get">
<div>
    <input id="input" type="text" name="q">
        <button id="search_button" type="submit">Go!</button>
    </span>
</div>
</form>

<script type="text/javascript">
document.getElementById("search_button").addEventListener('click', function () {
    let text = document.getElementById('input').value;
    let regex = /:/gi;
    let new_text = text.replaceAll(regex, "\\:"); // fix
    document.getElementById('input').value =  new_text; // new code
});
</script>