📅  最后修改于: 2023-12-03 14:55:54.213000             🧑  作者: Mango
在JavaScript中,正则表达式可以用来匹配字符串中的模式。有时候我们需要匹配的模式中包含空格或制表符等空白字符,此时正则表达式会忽略这些空白字符,但有时候我们需要这些空白字符是匹配的一部分。这时我们可以使用正则表达式的可选空白字符。
可选空白字符包括空格、制表符、换行符和回车符。使用正则表达式 /\s?/
可以匹配一个可选空白字符,这个正则表达式中的 \s
表示空白字符,?
表示这个字符是可选的。这个正则表达式可以匹配一个空格、一个制表符、一个换行符、一个回车符,或者不匹配任何字符。下面是一个例子:
const str1 = 'Hello world!';
const str2 = 'Hello world!\n';
const regex = /Hello\s?world!/;
console.log(regex.test(str1)); // true
console.log(regex.test(str2)); // true
这个例子中,str1
中的空格被忽略了,但是正则表达式仍然匹配成功了。str2
中包含了一个制表符和一个换行符,但是同样匹配成功了。
如果我们需要匹配多个可选空白字符,我们可以使用正则表达式的重复限定符来表示一个可选空白字符可以重复出现。正则表达式 /\s*/
可以匹配多个可选空白字符,这个正则表达式中的 *
表示前面的元素可以重复出现零次或多次。下面是一个例子:
const str1 = 'foo bar';
const str2 = 'foo bar';
const str3 = 'foo bar ';
const regex = /foo\s*bar/;
console.log(regex.test(str1)); // true
console.log(regex.test(str2)); // true
console.log(regex.test(str3)); // true
这个例子中,str1
中的空格被忽略了,但是正则表达式仍然匹配成功了。str2
中包含了一个制表符,但是同样匹配成功了。str3
包含多个制表符和空格,但同样匹配成功了。
在匹配字符串模式中,有时候需要匹配字符串中的空白字符。可选空白字符可以用来表示一个空白字符是可选的。使用 \s?
可以匹配一个可选空白字符,使用 \s*
可以匹配多个可选空白字符。