簡體   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