我目前正在用纯 JS(无 jQuery)编写一个实用程序,它对给定的输入文本执行字符串替换:它查找字符串的出现并用另一个替换它们。为此,我希望允许用户在 <input> 元素中指定所需的替换字符串。
但是,如果用户输入特殊字符,例如换行符 (\n) 或制表位 (\t),这些将不会被解释为实际的换行符或制表位,而是作为文字字符串“\n”和“\吨”。
简而言之,这是我的代码以澄清问题:
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
function run() {
var inputStr = document.getElementById("inputStr").value;
var searchStr = document.getElementById("searchStr").value;
var regExp = new RegExp(searchStr, "g");
var replacementStr = document.getElementById("replacementStr").value;
alert(inputStr.replace(regExp, replacementStr));
}
</script>
</head>
<body>
<label>Input string:</label>
<input id="inputStr" type="text" value="Apples and pears"><br>
<label>Look for this:</label>
<input id="searchStr" type="text" value=" and "><br>
<label>Replace with this:</label>
<input id="replacementStr" type="text" value="\n"><br>
<button onclick="run()">Go!</button>
</body>
</html>
预期输出:
Apples
pears
实际输出:
Apples\npears
转义(例如“\\n”)或将输入提供给字符串对象(replacementStr = new String(replacementStr))都不会做任何事情。
一些帮助将不胜感激!