我要删除换行符,如\r\n、\t、\n和其他特殊字符
<button onclick="myFunction()">Try it</button>
<p id="demo"></p>
<input type="text" id="ctext" onchange="myFunction();"/>
<script>
function myFunction() {
var str = document.getElementById("ctext").value.toString();
var result = str.replace("\n", "");
result = result.replace(/[^a-zA-Z0-9]/g,'').replace(/__/g,'').replace(/\\/g, "");
document.getElementById("demo").innerHTML = result;
document.getElementById("ctext").value = result;
return false;
}
</script>
实际上,当我们在文本框中输入文本并且onchange事件发生时,我想删除换行符,例如从'\n‘到'','\r\n’到'','\t‘到'’。但不幸的是,它给出的输出为'\n‘中的n,'\r\n’中的rn。我的意思是,它只删除反斜杠,而不是完整的换行符。
我希望从输入文本中获取的字符串可以从特殊字符转义,如'\n','\r\n','\t‘等换行字符。也就是说,如果我们从输入文本框中输入这个字符串"sdfjn\nkl454\r\n\t__._“。然后,在更改时,它应该类似于sdfjnkl454。但它显示的是sdfjnnk454rnt。
发布于 2020-10-12 17:34:05
这是因为在javascript中,\
是一个转义字符,因此"\n
与"n"
相同。
您可以尝试使用此正则表达式来替换这些代码:
const string = `I have whitespaces and new line chars
that are
replaced. Same with tabs`
const replacedString = string.replace(/[\n\s\r\t]*/g, "")
console.log(replacedString);
发布于 2020-10-12 17:52:39
代码中的var result = str.replace("\n", "");
行仅替换\n
的第一个匹配项。
为了删除所有出现的\n
,\r
和\t
在replace
方法的第一个参数中使用正则表达式,如下所示:
var result = str.replace(/\n|\r|\t/g, "");
上面的语句指出,如果您找到任何\n
、\r
或\t
,则只需将其替换为"“。
此外,如果您还需要删除所有下划线,则只需将上面的语句更新为:
var result = str.replace(/\n|\r|\t|_/g, "");
发布于 2020-10-12 18:00:51
如果要替换"\n“、"\r”、"\t“,则应使用str.replace(/\\n|\\r|\\t/g, "")
function myFunction() {
var str = document.getElementById("ctext").value.toString();
var result = str.replace(/\\n|\\r|\\t/g, "");
result = result.replace(/[^a-zA-Z0-9]/g,'').replace(/__/g,'').replace(/\\/g, "");
result = result.replace(/[^a-zA-Z0-9]/g,'');
document.getElementById("demo").innerHTML = result;
document.getElementById("ctext").value = result;
return false;
}
<button onclick="myFunction()">Try it</button>
<p id="demo"></p>
<input type="text" id="ctext" onchange="myFunction();"/>
https://stackoverflow.com/questions/64322577
复制