如何使用正则表达式在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/与在split中使用"不同呢?
" "
是一个文字空间,而'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/
'b
a匹配零宽度的单词边界,例如字母和空格之间的边界。
而使用split(' ')
只匹配空格:
来自MDN 的Regex文档
相关文章:
- 通过跳过拆分字符在 javascript 中拆分字符串
- jQuery字符串使用split()方法在空格后拆分字符串
- Javascript-正则表达式,用于在未转义字符上拆分字符串,例如|,但忽略|
- 如何在JavaScript中按大小写拆分字符串
- 根据上次出现的、和_拆分字符串
- 拆分字符串数组(JavaScript)后未定义
- 在空行上拆分字符串
- 使用Regex拆分字符串,保留分隔符
- 使用jquery或regex,带点但不带点的拆分字符串位于单引号中
- Nashorn和Rhino:使用空白regexp拆分字符串
- Javascript:不使用.split()方法拆分字符串
- 如何使用正则表达式在javascript中拆分字符串
- Javascript在第一个空格上拆分字符串
- 首次出现时拆分字符串
- 如何使用正则表达式(.match())拆分字符串
- 使用正则表达式拆分字符串
- Javascript:拆分字符串,但仅使用 1 个结果
- Angularjs-拆分字符串问题
- angularjs在拆分字符串时解析语法错误
- 基于javascript中的AND OR逻辑拆分字符串