如何在Javascript中替换新的行字符
How to replace a new line character in Javascript?
Hi =)我有一些代码,我正在努力。我有一个函数来替换特定的html字符值,如制表符或新行,但它似乎工作得不太好。
var replaceHTMLCharacters = function(text){
text = text.split("");
for(var i = 0; i < text.length; i++){
if(text[i].charCodeAt(0) == 10){
text[i] = "'n";
}
}
text = text.join("");
console.log(text);
return text;
}
这是我试图删除一个新的行字符,并将其替换为"'n",以便我可以将其存储在JSON格式的一个例子。它到达了一个点,它说的是text[i] = "'n"
,但实际上并没有将这个字符设置为"'n"
。有人能告诉我我做错了什么吗?谢谢你。
"'n"是换行符。你用已经存在的东西替换它们,让String保持不变。如果您想要实际的字符'和n,您需要屏蔽反斜杠''n
并插入。
似乎你正在用"'n"代替"'n"。要替换''n',您需要通过添加额外的'''或''n'来转义它
我认为你最好在这里使用一点正则表达式。试试下面的代码(我还特意重命名了你的函数,让它的名字更有描述性):
function breakOnTab (string) {
return string.replace(/'t/g, ''r'n')
}
此正则表达式查找所有制表符't
并将其替换为由转义回车和新行组成的字符串。
您可以使用'n和't ..
你也可以检查出'n和'r之间的差异?
var replaceHTMLCharacters = function(text) {
var reg = new RegExp(/('r'n?|'n|'t)/g);
var ntext = text.replace(reg, "-");
console.log(ntext);
return text;
}
replaceHTMLCharacters(`newLine
Text1`)
replaceHTMLCharacters("Tab text2");
首先:HTML字符不存在…
第二:我不明白你为什么做text = text.split("");
,你将迭代数组而不是字符串,花费时间和内存…
第三个:''n' charCode是10…
如果您想将HTML格式的文本重写为纯文本,您可以这样做:
var replaceHTMLCharacters = function(text){
text = text.replace(/<br's*'/?>/g,''n');
console.log(text);
return text;
}
相关文章:
- 无效字符替换时出错
- 在JavaScript中,如何用一个字符替换字符串中的所有字母
- 不能将 UTF-8 字符替换为正则表达式
- .keyup() 上的非拉丁字符替换在快速键入时不起作用
- 将字符串中的重复字符替换为不断增长的数字 [Javascript]
- 为什么不用特殊字符替换选择文本,以及如何删除此特殊字符
- 将ASCII字符替换为等效字符
- Javascript:用其他字符替换反斜杠和双引号
- Angularjs:显示字符串中的最后四个字符,并将其余字符替换为“X”
- 用字符替换将字符串之类的数组替换为数组
- 用连字符替换字符串中的空格
- 特殊字符替换为空格
- 将所有字符替换为 #,最后 4 个字符除外
- 将文本上的特殊字符替换为 jquery
- 将字符替换为标记(例如 *hi* 到
hi
) - JS中的多个字符替换 - 如何在同一函数中停止对先前结果的替换
- 删除时将字符替换为另一个字符
- 将所有特定字符替换为计数器升序
- Javascript 将 32 以下的字符替换为 x(charcode)
- Javascript:正则表达式,用于将某些字符替换为十六进制代码