javascript正则表达式在句点之后添加换行符

时间:2011-06-20 18:24:21

标签: javascript regex

我试图在javascript中使用正则表达式在每个句子后添加一个换行符,将json数据格式化为html变量。

仅基于句点找不到它 - json数据中似乎有额外的字符或其他每3或4个单词导致换行的字符。

所以我试图寻找一个大写字母前瞻的时期。但这是在每个大写字母之前添加换行符,而不仅仅是跟随一段时间的换行符。

我对正则表达式很陌生,所以任何帮助都会非常有帮助!

现在,大写字母后跟大写字母的搜索参数为:/.(?=[A-Z])/g

javascript是:description.replace(/.(?=[A-Z])/g, '<br /><br />');

4 个答案:

答案 0 :(得分:1)

一些问题。 RegEx中的第一个.表示“任何字符”。 其次,我认为你不需要?=。我想你可能正在寻找这样的东西:

 /\.(\s+)[A-Z]/g

答案 1 :(得分:0)

句点.是匹配任何单个字符的通配符。要匹配实际的时间段,您必须在正则表达式\.中将其转义为行

description.replace(/.(?=[A-Z])/g, '<br /><br />');

变为

description.replace(/\.(?=[A-Z])/g, '<br /><br />');

我还没有对此进行任何测试来检查其余的正则表达式。

答案 2 :(得分:0)

你需要像这样逃避你的.。所以它与任何角色都不匹配。

description.replace(/\.(?=[A-Z])/g, '<br /><br />');

答案 3 :(得分:0)

对于更复杂的句子结构,包括引号,括号等,这是我提出的解决方案(gist):

  1. 正则表达式:

    ([^\dA-Z][\.!?][\)\]'"”’]* +)
    
  2. 替换字符串:

    $1\n