jQuery去除textarea多行文本每行首尾空格出现多余空行问题排查
问题定位
你代码的核心问题集中在换行处理和数组拼接两个环节,最终导致出现多余空行:
- 换行分割规则不兼容:仅使用
/\n/做分割,未适配Windows平台常见的\r\n换行格式,行尾残留的\r回车符会造成文本渲染错位、出现异常空行 - 数组拼接逻辑冗余有隐患:通过
toString()转数组后再拆分逗号替换换行的写法完全多余,不仅执行效率低,一旦某行文本本身包含英文逗号,,会被错误拆分为多行,破坏原始内容结构 - 全局边界未处理:未对最终生成的文本做首尾空白清理,容易残留多余的首尾换行
修正后的实现方案
直接使用数组原生join()方法做换行拼接,同时兼容多平台换行规则,完整代码如下:
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> <textarea name="f01" id="40459045A"> आज शिद्दत से दिल चाह रहा है, बंद आँखें खोलूं तो सामने तुम हो !! </textarea> <script> const $targetTextarea = $("textarea[name=f01]"); const result = $targetTextarea.val() // 兼容\n、\r\n两种常见换行格式分割行 .split(/\r?\n/) // 逐行清除首尾空白字符 .map(line => $.trim(line)) // 过滤所有空白行 .filter(line => line.length > 0) // 直接用换行符拼接有效行,无额外副作用 .join("\n"); $targetTextarea.val(result); </script>
处理后效果
代码执行后文本域内容完全符合预期,无多余空行、每行首尾无空白:
आज शिद्दत से दिल चाह रहा है, बंद आँखें खोलूं तो सामने तुम हो !!
内容的提问来源于stack exchange,提问作者Priya Patel
相关产品推荐
相关产品推荐

