首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

JavaScript 去除字符串首尾換行符(保留中間)的最佳實踐

     編輯:程式設計疑難解答

問題

需要去除字符串首尾的空白字符(換行、空格、Tab 等),但保留中間的換行。類似 `trim()` 行為,但老環境無原生支持。

解決方案

現代瀏覽器(ES5+)

const str = '\n  Hello World  \r\n';
const trimmed = str.trim();  // "Hello World"

`String.prototype.trim()` 已標準化,可直接使用。

兼容舊環境(IE8 及以下)

if (!String.prototype.trim) {
    String.prototype.trim = function() {
        return this.replace(/^\s+|\s+$/g, '');
    };
}
  • 正則 `/^\s+|\s+$/g` 匹配開頭、結尾的一個或多個空白字符(`\s` 包含空格、換行、Tab、\f、\r、\v)。
  • 替換為空字符串即可。

僅去除換行符(不含空格)

function trimNewlines(str) {
    return str.replace(/^[\r\n]+|[\r\n]+$/g, '');
}

若只針對 `\r` `\n`,用字符類 `[\r\n]` 更精確。

測試示例

const test = '\n\r  Hello\nWorld  \r\n';
console.log('|' + test.trim() + '|');           // |Hello\nWorld|
console.log('|' + trimNewlines(test) + '|');   // |  Hello\nWorld  |

總結

  • 首選原生 `trim()`,性能最好、語義最清晰。
  • 需兼容舊瀏覽器時,用 `replace(/^\s+|\s+$/g, '')` 打補丁。
  • 若只去換行,用 `/^[\r\n]+|[\r\n]+$/g`。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved