我想从我的文本区域中获取文本,放入一个变量,将所有换行符(\n\r)更改为“@@”。
由于某种原因,它不起作用。
请帮忙,这是一个小提琴:http: //jsfiddle.net/HK82q/
$("#go").click(function(){
curtext = $("textarea").val();
curtext = curtext.replace("\n\r\n","@@");
alert(curtext);
});
我想从我的文本区域中获取文本,放入一个变量,将所有换行符(\n\r)更改为“@@”。
由于某种原因,它不起作用。
请帮忙,这是一个小提琴:http: //jsfiddle.net/HK82q/
$("#go").click(function(){
curtext = $("textarea").val();
curtext = curtext.replace("\n\r\n","@@");
alert(curtext);
});
“换行符”可能意味着以下三件事之一:
\r
(回车),旧 Mac 电脑使用\n
(换行),Linux、Unix 使用,我认为是新的 Mac\r\n
(CRLF),由 Windows 使用因此,您需要处理所有三种情况。这可以通过多次.replace
调用或正则表达式来完成:
curtext = curtext.replace(/(?=[\r\n])\r?\n?/g,"@@");
这个正则表达式首先断言前面有一个 CR 或 LF,然后有选择地匹配它们以允许所有三个选项。断言确保“无”不匹配。
您期望遇到一个\n
紧随其后的\r
. 这是错的。您应该期待其中之一。然后,replace
函数的正则表达式应该用/
not with括起来"
。它不是一个字符串。最后一件事 - 添加g
修饰符(代表全局 - 将替换所有出现,而不仅仅是第一个)。
curtext = curtext.replace(/[\n\r]/g,"@@");
这是更新的小提琴:http: //jsfiddle.net/HK82q/1/