JavaScript处理一段文字遇到标点符号换行

有个需求是期望把一段文字想歌词那样换行显示。目前粗略方式,就是遇到标点符号进行换行效果。

网上找了解决方案,有以下两种。按照我的诉求,采用了第二种。

示例代码:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title></title>
</head>
<body>
  <script type="text/javascript">
// 示例1:来源于百度的ai智能回答
    function wrapTextAtPunctuation(text) {
      // 正则表达式匹配常见的标点符号
      const pattern = /[。!?;,.!?;]/;
      
      // 使用split分割文本,并在每个标点符号处拆分
      let wrappedText = text.split(pattern).map((segment, index) => {
        // 如果这不是最后一个段落,并且段落不为空
        if (index < text.length - 1 && segment) {
          // 在段落末尾添加换行符
          return segment + '\n';
        }
        return segment;
      }).join('');
      
      return wrappedText;
    }



    // 示例1:标点符号没有了
    const text = "这是一段示例文本。这是下一句。又一段新文本!最后一句问题?";
    const wrappedText = wrapTextAtPunctuation(text);
    console.log(wrappedText);

// 示例2:来源于参考文章2
    function Fun2(text) {
      // 正则表达式匹配常见的标点符号,g代表全局匹配
      const pattern = /[。!?;,.!?;]/g;
      
      let text_ = text.replace(pattern, '$&\n'); // $&代表匹配到的字符本身,\n是换行符
      return text_;
    }

    // 示例2:保留原来的标点符号
    console.log('Fun2:::', Fun2(text));
  </script>

</body>
</html>


参考文章:

  1. 百度ai智能:


    image.png
  2. 微信小程序:js处理一段文字,根据句号或者分号进行换行https://blog.csdn.net/weixin_46001736/article/details/134054345

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容