Javascript正则表达式,使删除单段换行符
Javascript regex, make remove single paragraph line breaks
我有以下格式的文本:
word word,
word word.
word word
word word.
这并不是两个单词的格式所特有的,它只是在这么多字符之前的一个换行符,而不是一个长长的段落字符串。但我正试图把它变成一长串的段落。所以它应该是这样的:
word word, word word.
word word word word.
如果我使用代码text.replace(/$'n(?=.)/gm, " ")
并将其输出到终端,我会得到如下文本:
word word, word word.
word word word word.
它在段落开头有一个额外的空间,但这对于我想要做的事情来说已经足够了(尽管如果有一种方法可以在一个替换函数中删除它,那就太好了)。问题是,当我将其输出到文本区域时,它不会删除字符,而我只得到如下文本:
word word,
word word.
word word
word word.
我正在尝试在客户端完成这项工作,目前正在Firefox中运行。
我对regex不是最好的,所以这可能真的很简单,我只是不知道如何做。但任何帮助都将不胜感激。谢谢
回车是''r所以您需要使用
text.replace(/$('r|'n)(?=.)/gm, " ");
在满足您请求的一段代码下面,我也删除了前导空格(由空行引起),使用了带有替换函数的闭包:
var regex = /([^.])'s+/g;
var input = 'word word,'nword word.'n'nword word'nword word.';
var result = input.replace(regex, function(all, char) {
return (char.match(/'s/)) ? char : char + ' ' ;
});
document.write('<b>INPUT</b> <xmp>' + input + '</xmp>');
document.write('<b>OUTPUT</b> <xmp>' + result + '</xmp>');
Regex突破
([^.]) # Select any char that is not a literal dot '.'
# and save it in group $1
's+ # 1 or more whitespace char, remove trailing spaces (tabs too)
# and all type of newlines ('r'n, 'r, 'n)
注意
如果出于某种原因,您希望保留前导空格,请简化以下代码:
var regex = /([^.])'s+/g;
var replace = '$1 ';
var input = 'word word,'nword word.'n'nword word'nword word.';
var result = input.replace(regex, replace);
document.write('<b>INPUT</b> <xmp>' + input + '</xmp>');
document.write('<b>OUTPUT</b> <xmp>' + result + '</xmp>');
您可能错过了一些''r,这里有一种方法可以匹配所有类型的新行,而不需要额外的空格:
var input = 'word word,'nword word.'n'nword word'nword word.';
// split if 2 or more new lines
var out = input.split(/('r'n|'n|'r){2,}?/)
// split the paragraph by new lines and join the lines by a space
.map((v) => v.split(/'r'n|'n|'r/).join(' '))
// there is some spaces hanging in the array, filter them
.filter((v) => v.trim())
// join together all paragraphs by 'n
.join(''n');
$('#txt').append(out);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<textarea id="txt"></textarea>
相关文章:
- 如何在映射数组中添加换行符
- JQuery:向多个匹配结果添加换行符的最简单方法
- 在文本区域中使用jQuery.text()保持换行符
- javascript替换换行符和特殊字符
- 换行符拆分返回“”;未定义”;
- 如何使用web浏览器在NoSQL数据中呈现换行符
- 换行符插入jquery选择器
- jquery使用val()复制值似乎可以删除换行符
- 文本区域-获取每一行,找到换行符
- 处理字段中带有换行符的csv文件-node.js
- 有没有一种方法可以用包含ENTER键换行符的SQL数据填充文本区域表单
- 如何使用JavaScript解析字段中包含换行符的CSV数据
- ASCII 表,其中字段可以有换行符
- 添加换行符 JavaScript pdf 表单时的文本字段空白
- Javascript正则表达式,使删除单段换行符
- 显示文本中的x个字符,当单击href时,用换行符显示其余字符
- 表单对象中的换行符
- 如何在依赖JavaScript的Struts表单中处理换行符
- 表单验证脚本使用正则表达式检查跨换行符的多个关键字
- 显示带有换行符的动态创建的单选按钮