正規表示式的\b與\B總結

看風景就發表於2017-08-05

\b 單詞邊界,是指單詞與符號之間的邊界,是一個位置,不是空格或字元。(這裡單詞可以是中文字元,英文字元,數字;
   符號可以是中文符號,英文符號,空格,製表符,換行)。不能與量詞?+*{1}{2,5}等連用
\B 非單詞邊界,是指符號與符號,單詞與單詞的邊界,不能與量詞連用 

舉列:

1.單詞邊界

var str = ' 2 ';//其中空格與2之間的位置叫做單詞邊界,匹配\b

2.非單詞邊界

var str = ",,,,,和呵呵,,,,,";
var reg = '\B呵\B';//reg匹配中間的呵,其兩側都是字元,中間的位置為非單詞邊界。

3.統計以“,”分割的元素中“3”的個數

var test = "137,1,33,4,3,6,21,3,35,93,2,98"; 
var count = test.match(test, "\b3\b").length; //結果:2

4.千分位分割數字,將輸出成7,654,321這樣的格式

'7654321'.replace(/\B(?=(\d{3})+(?!\d))/g,',')
//7,654,321(匹配末尾是非數字,中間是連續3位數字整倍數的非單詞邊界)

'99893'.replace(/\B(?=(\d{3})+$)/g, ',')
// '99,893'

5.手機號344分割

'12345678901'.replace(/\B(?=(?:\d{4})+$)/g, '-')
// '123-4567-8901'

 


參考: http://blog.csdn.net/qq_33248299/article/details/53559924
    https://segmentfault.com/q/1010000004508861
    http://www.jb51.net/article/19330.htm
    https://juejin.im/post/5964e1ca51882568d2248b61

 

相關文章