#javascript
#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 = resu<
document.getElementById("ctext").value = resu<
return false;
}
</script>
На самом деле, когда мы вводим текст в текстовое поле и происходит событие onchange, я хочу удалить символы новой строки, например, из ‘n’ в «, ‘ r n’ в «, ‘ t’ в «. но, к сожалению, он выдает вывод как n из ‘n’, rn из ‘ r n’. Я имею в виду, что он удаляет только обратную косую черту, а не полные символы новой строки.
Я хочу, чтобы строка, получаемая из входного текста, экранировалась из специальных символов, символов новой строки, таких как ‘n’, ‘ r n’, ‘ t’ и т. Д. Т.Е. Если мы введем эту строку «sdfjn nkl454 r n t__._» из вводатекстовое поле. затем при изменении это должно быть похоже на sdfjnkl454. но он показывает sdfjnnk454rnt.
Комментарии:
1. Когда вы вводите » n» в текстовое поле, это не преобразуется в символ новой строки. Это будет буквально строка с обратной косой чертой-N, эквивалент кода которой будет
\n
.
Ответ №1:
Это происходит потому, что в javascript
это escape-символ, следовательно "n
, такой же, как "n"
.
Вы можете попробовать это регулярное выражение, чтобы заменить их:
const string = `I have whitespaces and new line chars
that are
replaced. Same with tabs`
const replacedString = string.replace(/[nsrt]*/g, "")
console.log(replacedString);
Комментарии:
1. Правильно.. Но он также может добиться желаемого результата, добавив несколько строк.
Ответ №2:
Строка 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, "");
Ответ №3:
Вы должны использовать str.replace(/\n|\r|\t/g, "")
, если хотите заменить » n», » r»,» t»
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 = resu<
document.getElementById("ctext").value = resu<
return false;
}
<button onclick="myFunction()">Try it</button>
<p id="demo"></p>
<input type="text" id="ctext" onchange="myFunction();"/>
Ответ №4:
Попробуйте приведенный ниже код для получения точного результата, который вы хотели. Попробуйте
<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(/[_.nsrt__]*/g, "");
document.getElementById("demo").innerHTML = resu<
document.getElementById("ctext").value = resu<
return false;
}
</script>