一、匹配單個換行符
代碼示例:
// 在 JavaScript 中,. 并不能匹配換行符,需要使用 [\s\S] 來代替
const regex = /[\s\S]\n/;
console.log(regex.test('a\n')); // true
console.log(regex.test('a')); // false
正則表達式中,單個換行符可以用 \n 來表示。但是,如果想要匹配單個換行符,則需要使用 [\r\n\v\f\u2028\u2029] 或 [\s\S]。前者用來匹配所有換行符,后者用來匹配所有字符,包括換行符。
舉例來說,假設我們的字符串是 "a\n",我們想要匹配其末尾的換行符。我們可以使用 /[\s\S]\n/ 來表示。其中 [\s\S] 匹配除了換行符之外的所有字符,\n 表示單個換行符,兩者結合起來就可以匹配 "a\n" 中的換行符了。
二、匹配多個連續的換行符
代碼示例:
// 匹配至少兩個連續的換行符
const regex = /\n{2,}/;
console.log(regex.test('a\n\nb')); // true
console.log(regex.test('a\nb')); // false
如果想要匹配多個連續的換行符,可以使用量詞 {n,m} 來匹配,其中 n 表示最少匹配數,m 表示最多匹配數。
舉例來說,假設我們的字符串是 "a\n\nb",我們想要匹配其中的連續的兩個換行符。我們可以使用 /\n{2}/ 來表示。其中 \n 表示單個換行符,{2} 表示連續匹配兩個換行符。
三、利用換行符分割字符串
代碼示例:
// 利用正則表達式分割字符串
const regex = /\r?\n/;
const str = 'Hello\nworld\r\n';
const arr = str.split(regex);
console.log(arr); // ['Hello', 'world', '']
換行符在很多情況下都是用來分割字符串的。在 JavaScript 中,可以使用 String.prototype.split() 方法來分割字符串。而利用正則表達式來分割字符串,則可以更加靈活。
舉例來說,假設我們的字符串是 "Hello\nworld\r\n",我們想要按照其中的換行符來分割字符串。我們可以使用 /\r?\n/ 來表示。其中 \r? 表示可選的回車符,\n 表示單個換行符。然后,我們可以使用 split() 方法來將字符串分割成一個數組。以上代碼輸出的結果為 ['Hello', 'world', ''],表示分割后的字符串數組。
四、替換換行符為其他字符
代碼示例:
// 替換換行符為逗號
const regex = /\r?\n/g;
const str = 'Hello\nworld\r\n';
const newStr = str.replace(regex, ',');
console.log(newStr); // 'Hello,world,'
有時候,我們需要將字符串中的換行符替換為其他字符。在 JavaScript 中,可以使用 String.prototype.replace() 方法來進行替換操作。利用正則表達式進行替換,則可以更加靈活。
舉例來說,假設我們的字符串是 "Hello\nworld\r\n",我們想要將其中的換行符替換為逗號。我們可以使用 /\r?\n/g 來表示。其中 \r? 表示可選的回車符,\n 表示單個換行符,g 表示全局匹配。然后,我們可以使用 replace() 方法來將字符串中的換行符替換為逗號。以上代碼輸出的結果為 "Hello,world,"。