需要删除输入文本Javascript

时间:2020-10-12 17:26:59

标签: javascript

我要删除\ 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 __._”。然后onchange应该像sdfjnkl454。但它显示的是sdfjnnk454rnt。

4 个答案:

答案 0 :(得分:2)

发生这种情况是因为在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);

答案 1 :(得分:1)

代码中的行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, "");

答案 2 :(得分:1)

如果要替换“ \ 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();"/>

答案 3 :(得分:1)

尝试以下代码以获得所需的确切输出。 试试吧

<p id="demo"></p>
<input type="text" id="ctext" onchange="myFunction();"/>


<script>
function myFunction() {
  var str = document.getElementById("ctext").value.replace('\\n','\n');
   str = str.replace('\\s','\s');

  str = str.replace('\\r','\r');

  str = str.replace('\\t','\t');

 var result = str.replace(/[_.\n\s\r\t__]*/g, "");

  document.getElementById("demo").innerHTML = result;
  document.getElementById("ctext").value = result;
  return false;
}
</script>