繁体   English   中英

如何使用正则表达式在javascript中拆分字符串

[英]How to Split string In javascript Using regex

我正在尝试做这样的事情

function findLongestWord(str) {
var wordContainer = str.split(/\b/) || 0;
document.write(wordContainer);
}

findLongestWord("The quick brown fox jumped over the lazy dog");

但这又回来了

The, ,quick, ,brown, ,fox, ,jumped, ,over, ,the, ,lazy, ,dog

但是如果我做这样的事情

function findLongestWord(str) {
var wordContainer = str.split(" ") || 0;
document.write(wordContainer);
}

findLongestWord("The quick brown fox jumped over the lazy dog");

它按预期工作并返回

The,quick,brown,fox,jumped,over,the,lazy,dog

那么为什么在分割中使用/ \\ b /与使用“”不同?

\\b a匹配零宽度的单词边界,例如字母和空格之间。

在使用split(' ')仅匹配空格:

来自MDN的Regex文档

因为" "是文字空间, \\b是单词边界。

如果第一个字符是单词字符,则单词边界出现在字符串的第一个字符之前;如果最后一个字符是单词字符,则在字符串的最后一个字符之后,再出现在字符串的两个字符之间,一个是单词字符,另一个不是单词字符,这意味着您的字符串看起来像这样,带有边界:

"The\b \bquick\b \bbrown\b \bfox\b \bjumped\b \bover\b \bthe\b \blazy\b \bdog"

换句话说,您要在单词的开头和结尾匹配\\b ,并且在拆分时也得到空格,最后得到

["The"," ","quick"," ","brown"," ","fox"," ","jumped"," ","over"," ","the"," ","lazy"," ","dog"]

如果要在边界上分割单词,则必须同时添加它们和中间的任何内容,例如/\\b.\\b/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM