【发布时间】:2011-03-06 07:26:59
【问题描述】:
如何从文本区域中删除最后一个“\n”?
【问题讨论】:
-
只是为了确认...您实际上是指换行符中的“\n”而不是“/n”吗?
标签: javascript newline
如何从文本区域中删除最后一个“\n”?
【问题讨论】:
标签: javascript newline
仅删除最后一个换行符 (\n):
verses1 = "1\n222\n"
verses1.replace(/\n$/, "")
// "1\n222"
verses2 = "1\n222\n\n"
verses2.replace(/\n$/, "")
// "1\n222\n"
仅所有最后的换行符 (\n):
verses = "1\n222\n\n"
verses.replace(/\n+$/, "")
// "1\n222"
【讨论】:
stdout 的流中,它会对性能产生巨大影响。但是在这种情况下没有办法......
来自http://en.wikipedia.org/wiki/Trim_%28programming%29
String.prototype.trim = function() {
return this.replace(/^\s+|\s+$/g, "");
};
这将为字符串变量添加一个修剪函数,该函数将删除字符串开头和结尾的空格。
有了这个,你可以做这样的事情:
var mystr = "this is my string "; // including newlines
mystr = mystr.trim();
【讨论】:
\n 字符,请将上面的/^\s+|\s+$/g 替换为/\n$/。此外,如果您计划分发此代码或将其放置在可能与其他用户的 JS 共享空间的地方,我建议您只创建一个通用函数 trim 而不是使用 String.prototype。虽然这是很常见的做法,但您可以通过向核心 JS 对象添加方法来给其他人带来麻烦。
$.trim() 应该可以解决问题!
它从指定字符串的开头和结尾修剪空格和换行符。
【讨论】:
我个人喜欢 lodash 从字符串中修剪换行符。 https://lodash.com/
_.trim(myString);
【讨论】:
_.trimRight(myString, '\n')。请注意,这将删除 任何 个尾随换行符,而不仅仅是一个。
你可以这样做(.*[^\n])\n*
结果:https://regex101.com/r/lWKzFy/1
【讨论】: