国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
JS正則表達(dá)式元字符
目錄結(jié)構(gòu)

正則 描述 正則 描述
\f 匹配換頁(yè)符 \t 匹配制表符
\n 匹配換行符 \v 匹配垂直制表符
\r 匹配回車 \s 匹配單個(gè)空格,等同于[\f\n\r\t\v];
\S 表示非空格字符 \d 在正則中表示數(shù)字
\w 表示單詞字符,等同于字符集合[a-zA-Z0-9_] \ 創(chuàng)建正則對(duì)象時(shí),要轉(zhuǎn)義
+ 表示出現(xiàn)一到多次 ^ 表示后邊出現(xiàn)的數(shù)字必須在開(kāi)頭
$ 表示前面出現(xiàn)的數(shù)字必須出現(xiàn)在結(jié)尾

視頻教程

g是模式修正符,表示在整個(gè)字符串里多次查找

match方法來(lái)找到和reg正則相匹配的內(nèi)容

"ab23839cd".match(/\d+/)

空白\s(包括空格回車制表符等)

\f匹配換頁(yè)符,\n匹配換行符,\r匹配回車,\t匹配制表符,\v匹配垂直制表符。
\s匹配單個(gè)空格,等同于[\f\n\r\t\v]。例如:
例1:

var reg = /\s.+/;var str='This is a test String.';alert(reg.exec(str));

返回“is a test String.”,正則的意思是匹配第一個(gè)空格以及其后的所有非換行字符。

同樣,\S表示非空格字符。
例2:

var reg = /\S+/;var str='This is a test String.';alert(reg.exec(str));

匹配結(jié)果為This,當(dāng)遇到第一個(gè)空格之后,正則就停止匹配了。

在正則中最常用到的一個(gè)是:
例3:var reg=/^\s*$/; //匹配任意空或空白字符,如果你什么也沒(méi)輸入,或輸入的只有空格、回車、換行等字符,則匹配成功。這樣就可以驗(yàn)證用戶是否正確輸入內(nèi)容了。
這個(gè)用來(lái)驗(yàn)證輸入框里是否寫(xiě)了有效效字符,用法如下:

var  reg=/^\s*$/;if(reg.test(value)){  alert('請(qǐng)輸入有效值');  return false;}

單字符\w

\w表示單詞字符,等同于字符集合[a-zA-Z0-9_]。例如:

var reg = /\w+/;var str='zhufengpeixun';alert(reg.exec(str));

返回完整的zhufengpeixun字符串,因?yàn)樗凶址际菃卧~字符。

var reg = /\w+/;var str='.className';alert(reg.exec(str));

結(jié)果顯示匹配了字符串中的className,只有第一個(gè)“.”唯一的非單詞字符沒(méi)有匹配。

var reg = /\w+/;var str='正則教程';alert(reg.exec(str));

試圖用單詞字符去匹配中文自然行不通了,返回 null。

\W表示非單詞字符,等效于[^a-zA-Z0-9_]

var reg = /\W+/;var str='正則教程';alert(reg.exec(str));

返回完整的字符串,因?yàn)?,中文算作是非單詞字符。


分組和分組的引用

請(qǐng)見(jiàn)在線視頻的正則專題部分的
正則表達(dá)式基礎(chǔ)第三講:分組、分組的引用、選擇等http://online.zhufengpeixun.cn/viewCourseDetail.do?courseId=141415

形式如下:/(子正則表達(dá)式)\1/ 依舊用例子來(lái)說(shuō)明:

1.例子

var reg = /\w/;var str='zhufengpeixun';alert(reg.exec(str));//返回z。

2.例子

var reg = /(\w)(\w)/;var str='zhufengpeixun';alert(reg.exec(str));

返回zh,z,h ,zh是整個(gè)正則匹配的內(nèi)容,z是第一個(gè)括號(hào)里的子正則表達(dá)式匹配的內(nèi)容,h是第二個(gè)括號(hào)匹配的內(nèi)容。

3.例子

var reg = /(\w)\1/;var str='zhufengpeixun';alert(reg.exec(str));

則會(huì)返回null。這里的“\1”就叫做反向引用,它表示的是第一個(gè)括號(hào)內(nèi)的子正則表達(dá)式匹配的內(nèi)容。在上面的例子中,第一個(gè)括號(hào)里的(\w)匹配了z,因此“\1”就同樣表示z了,在余下的字符串里自然找不到z了。與第二個(gè)例子對(duì)比就可以發(fā)現(xiàn),“\1”是等同于“第1個(gè)括號(hào)匹配的內(nèi)容”,而不是“第一個(gè)括號(hào)的內(nèi)容”。

var reg = /(\w)\1/;var str='bbs.zhufengpeixun.cn';alert(reg.exec(str));

這個(gè)正則則會(huì)匹配到bb,b。同樣,前面有幾個(gè)子正則表達(dá)式我們就可以使用幾個(gè)反向引用。例如:

var reg = /(\w)(\w)\2\1/;var str='woow';alert(reg.exec(str));

會(huì)匹配成功,因?yàn)榈谝粋€(gè)括號(hào)匹配到w,第二個(gè)括號(hào)匹配到o,而\2\1則表示ow,恰好匹配了字符串的最后兩個(gè)字符。

括號(hào)() ,表示子表達(dá)式,也叫分組

前面我們?cè)?jīng)討論過(guò)一次括號(hào)的問(wèn)題,見(jiàn)下面這個(gè)例子:

var reg = /^(b|c).+/;var str='bbs.blueidea.com';alert(reg.exec(str));

這個(gè)正則是為了實(shí)現(xiàn)只匹配以b或者c開(kāi)頭的字符串,一直匹配到換行字符,但是。上面我們已經(jīng)看到了,可以使用“\1”來(lái)反向引用這個(gè)括號(hào)里的子正則表達(dá)式所匹配的內(nèi)容。而且exec方法也會(huì)將這個(gè)字正則表達(dá)式的匹配結(jié)果保存到返回的結(jié)果中。


不記錄子正則表達(dá)式的匹配結(jié)果[匹配不捕獲]

使用形如(?:pattern)的正則就可以避免保存括號(hào)內(nèi)的匹配結(jié)果。例如:

var reg = /^(?:b|c).+/;var str='bbs.blueidea.com';alert(reg.exec(str));

可以看到返回的結(jié)果不再包括那個(gè)括號(hào)內(nèi)的字正則表達(dá)式多匹配的內(nèi)容。同理,反向引用也不好使了:

var reg = /^(b|c)\1/;var str='bbs.zhufengpeixun.cn';alert(reg.exec(str));

返回bb,b。bb是整個(gè)正則表達(dá)式匹配的內(nèi)容,而b是第一個(gè)子正則表達(dá)式匹配的內(nèi)容。

var reg = /^(?:b|c)\1/;var str='bbs.zhufengpeixun.cn';alert(reg.exec(str));

返回null。由于根本就沒(méi)有記錄括號(hào)內(nèi)匹配的內(nèi)容,自然沒(méi)有辦法反向引用了。


正向預(yù)查

形式:(?=pattern)所謂正向預(yù)查,意思就是:要匹配的字符串,后面必須緊跟著pattern! 我們知道正則表達(dá)式/cainiao/會(huì)匹配cainiao。同樣,也會(huì)匹配cainiao9中的cainiao。但是我們可能希望,cainiao只能匹配cainiao8中的cainiao。這時(shí)候就可以像下面這樣寫(xiě):/cainiao(?=8)/,看兩個(gè)實(shí)例:

var reg = /cainiao(?=8)/;var  str='cainiao9';alert(reg.exec(str));//返回null。
var reg = /cainiao(?=8)/;var  str='cainiao8';alert(reg.exec(str));

匹配cainiao。需要注意的是,括號(hào)里的內(nèi)容并不參與真正的匹配,只是檢查一下后面的字符是否符合要求而已,例如上面的正則,返回的是cainiao,而不是cainiao8

再來(lái)看幾個(gè)例子:

var reg = /zhufeng(?=peixun)/;var  str='zhufengpeixun';alert(reg.exec(str));

匹配到zhufeng,而不是peixun。

var reg = /zhufeng(?=peixun)/;var str=’zhufengonline’;alert(reg.exec(str));

返回null,因?yàn)?code>zhufeng后面不是peixun。

var reg = /zhufeng(?=peixun)/;var str='onlinepeixun';alert(reg.exec(str));

同樣返回null。

!

形式(?!pattern)=恰好相反,要求字符串的后面不能緊跟著某個(gè)pattern,還拿上面的例子:

var reg = /zhufeng(?!js)/;var str=`zhufengjs`;alert(reg.exec(str));

返回null,因?yàn)檎齽t要求,zhufeng的后面不能是js。

var reg = /zhufeng(?!js)/;var  str='zhufengpeixun';alert(reg.exec(str));

則成功返回zhufeng。


匹配元字符

首先要搞清楚什么是元字符呢?我們之前用過(guò)*,+,之類的符號(hào),它們?cè)谡齽t表達(dá)式中都有一定的特殊含義,類似這些有特殊功能的字符都叫做元字符。例如

var reg = /c*/;

表示有任意個(gè)c,但是如果我們真的想匹配c*這個(gè)字符串的時(shí)候怎么辦呢?只要將*轉(zhuǎn)義了就可以了,如下:

var reg = /c\*/;var str='c*';alert(reg.exec(str));

返回匹配的字符串:c*。

同理,要匹配其他元字符,只要在前面加上一個(gè)“\”就可以了。


正則表達(dá)式的修飾符

全局匹配,修飾符g

形式:/pattern/g 例子:reg = /b/g; 后面再說(shuō)這個(gè)g的作用。先看后面的兩個(gè)修飾符。不區(qū)分大小寫(xiě),修飾符i

形式:/pattern/i 例子:

var reg = /b/;var str = 'BBS';alert(reg.exec(str));

返回null,因?yàn)榇笮?xiě)不符合。

var reg = /b/i;var str = 'BBS';alert(reg.exec(str));

匹配到B,這個(gè)就是i修飾符的作用了。

行首行尾,修飾符m

形式:/pattern/m m修飾符的作用是修改^$在正則表達(dá)式中的作用,讓它們分別表示行首和行尾。例如:

var reg = /^b/;var str = 'test\nbbs';alert(reg.exec(str));

匹配失敗,因?yàn)樽址拈_(kāi)頭沒(méi)有b字符。但是加上m修飾符之后:

var reg = /^b/m;var str = 'test\nbbs';alert(reg.exec(str));;

匹配到b,因?yàn)榧恿?code>m修飾符之后,^已經(jīng)表示行首,由于bbs在字符串第二行的行首,所以可以成功地匹配。

匹配固定的n個(gè) c{n}

{1}表示一個(gè)的意思。/c{1}/只能匹配一個(gè)c,和/c/是一個(gè)意思,一般匹配只出現(xiàn)一次的字符,后邊的{1}就不寫(xiě)了。/c{2}/則會(huì)匹配兩個(gè)連續(xù)的c。以此類推, /c{n}/則會(huì)匹配n個(gè)連續(xù)的c??聪旅娴睦樱?/p>

var reg = /c{1}/;  var str='china_zhufengpeixun';alert(reg.exec(str));//輸出結(jié)果是:cvar reg = /o{2}/;  var str='money';  alert(reg.exec(str));//返回結(jié)果`null`,表示沒(méi)有匹配成功。reg = /o{2}/;str='good food';alert(reg.exec(str))//輸出結(jié)果oo。(其實(shí)是第一組oo,不會(huì)匹配到第二組oo,因?yàn)檎齽t的匹配是懶惰的,不加模式匹配符g,則表示只去匹配一次,匹配到了則返回并且停止。

如果寫(xiě)成

reg=/o{2}/g;alert(str.match(reg))//則輸出oo,oo了

c{m,n} 匹配最少m個(gè),最多n個(gè)

c{3,4}的意思是,連續(xù)的3個(gè)c或者4個(gè)c。例如:

reg = /o{3,4}/;// (匹配三到四個(gè)o)str='good正則教程';alert(reg.exec(str));

返回結(jié)果null,表示沒(méi)有匹配成功。例:

reg = /o{3,4}/;str='goood正則教程';alert(reg.exec(str));

彈出結(jié)果是:ooo。例:

reg = /o{3,4}/;str='very gooood正則教程';alert(reg.exec(str));

輸出的結(jié)果是:oooo,這表明正則會(huì)盡量多匹配,可3可4的時(shí)候它會(huì)選擇多匹配一個(gè)。(這就是貪婪匹配)例:

reg = /c{3,4}/;str='cccccTest';alert(reg.exec(str));

仍然會(huì)匹配4個(gè)c。

由以上例子可以推斷出:c{m,n}表示m到n個(gè)c,且m小于等于n。

c{n,}表示最少匹配n個(gè)c,最多不限制

c{1,}表示1個(gè)以上的c,相當(dāng)于+。如下:

例:

reg = /c{1,}/;str='cainiao';alert(reg.exec(str));//結(jié)果彈出c。

例:

reg = /c{1,}/;str='cccccTest';alert(reg.exec(str));//返回ccccc,再次說(shuō)明了正則表達(dá)式會(huì)盡量多地匹配。

例:

reg = /c{2,}/;str='cainiao';alert(reg.exec(str));

結(jié)果返回nullc{2,}表示2個(gè)以上的c,而cainiao中只有1個(gè)c。

由以上例子可知,c{n,}表示最少n個(gè)c,最多則不限個(gè)數(shù)。

綜合:*,+,?

*表示0次或者多次,等同于{0,},即c*c{0,} 是一個(gè)意思。

+表示一次或者多次,等同于{1,},即c+c{1,} 是一個(gè)意思。

最后,表示0次或者1次,等同于{0,1},即c?c{0,1} 是一個(gè)意思。

貪心與非貪心【貪婪匹配和非貪婪匹配】

人都是貪婪的,正則也是如此。我們?cè)诶?code>reg = /c{3,4}/;str='ccccTest';的例子中已經(jīng)看到了,能匹配四個(gè)的時(shí)候,正則絕對(duì)不會(huì)去匹配三個(gè)。上面所介紹的所有的正則都是這樣,只要在合法的情況下,它們會(huì)盡量多去匹配字符,這就叫做貪心模式。如果我們希望正則盡量少地匹配字符,那么就可以在表示數(shù)字的符號(hào)后面加上一個(gè)(即:?jiǎn)柼?hào)加在量詞的后邊,則表示非貪婪匹配)。組成如下的形式:

{n,}?, *?, +?, ??, {m,n}?

例:

reg = /c{1,}?/;str='ccccc'; alert(reg.exec(str));

返回的結(jié)果只有1個(gè)c,盡管有5個(gè)c可以匹配,但是由于正則表達(dá)式是非貪心模式,所以只會(huì)匹配一個(gè)。

/^開(kāi)頭,結(jié)尾$/ 【表示位置】

^表示只匹配字符串的開(kāi)頭。看下面的例子:

例1:

reg = /^c/;str='維生素c';alert(reg.exec(str));

結(jié)果為null,因?yàn)樽址?code>維生素c’的開(kāi)頭并不是c,所以匹配失敗。

例2:

reg = /^z/;str='zhufengpeixun';alert(reg.exec(str));;

這次則返回c,匹配成功,因?yàn)閏ainiao恰恰是以z開(kāi)頭的。

^相反,$則只匹配字符串結(jié)尾的字符,同樣,看例子:

例3:

reg = /z$/;str='zhufengpeixun';alert(reg.exec(str));

輸出null,表示正則表達(dá)式?jīng)]能在字符串的結(jié)尾找到z這個(gè)字符。

例4:

reg = /d$/;str='正則教程good';alert(reg.exec(str));

這次返回的結(jié)果是d,表明匹配成功。


元字符點(diǎn)’.’的用法

.會(huì)匹配字符串中除了換行符\n之外的所有字符,例如

reg = /./; //一個(gè)點(diǎn)表示匹配字符串中出現(xiàn)的第一個(gè)非換行符字符。str='zhufengpeixun';alert(reg.exec(str));;

結(jié)果顯示,正則匹配到了字符z。

reg = /./;str='online.zhufengpeixun';alert(reg.exec(str));

這次是o,只要有一個(gè)是非換行字符,就表示匹配成功,就不會(huì)往下再繼續(xù)了。

reg = /.+/;str='zhufengpeixun_  前端開(kāi)發(fā)權(quán)威培訓(xùn)';alert(reg.exec(str));

結(jié)果是“zhufengpeixun_前端開(kāi)發(fā)“也就是說(shuō)所有的字符都被匹配掉了,包括一個(gè)空格,一個(gè)下滑線

【貪婪匹配】。

例1:
reg = /.+/;str='online.zhufengpeixun.cn';  alert(reg.exec(str));;

同樣,直接返回整個(gè)字符串——online.zhufengpeixun.cn,可見(jiàn)”.”也匹配”.”本身。

例2:
reg = /^./; //這樣表示必須以非換行符開(kāi)始。str='\nzhufengpeixun';alert(reg.exec(str));

結(jié)果是null,終于失敗了,正則要求字符串的第一個(gè)字符不是換行,但是恰恰字符是以\n開(kāi)始的。


“|“,正則表達(dá)式中的或,把“|”左右兩邊的一到多個(gè)字符當(dāng)成一個(gè)整體對(duì)待

b|c表示,匹配b或者c(這里相當(dāng)于[bc])。ab|ac表示匹配abac(但這里不相當(dāng)于[abc],[]表示在一組字符中任選一個(gè))。

例1:
/z|o/.exec('zhufengpeixun'))//結(jié)果是z。
例2:
/z|o/.exec('online');//結(jié)果是o。
例3:
/^z|o.+/.exec('online');//匹配掉整個(gè)online。
例4:
/^z|o.+/.exec('zhufengpeixun.cn');//結(jié)果只有一個(gè)z,而不是整個(gè)字符串。因?yàn)樯厦嬲齽t表達(dá)式的意思是,匹配開(kāi)頭的z或者是o.+。

和括號(hào)結(jié)合使用

例:

/^(z|o).+/.exec('zhufengpeixun');

這次的結(jié)果是整個(gè)串zhufengpeixun,加上上面的括號(hào)這后,這個(gè)正則的意思是,如果字符串的開(kāi)頭是z或者o,那么匹配開(kāi)頭的z或者o以及其后的所有的非換行字符。如果你也實(shí)驗(yàn)了的話,會(huì)發(fā)現(xiàn)返回的結(jié)果后面多出來(lái)一個(gè)“z“,這是()內(nèi)的z|o所匹配的內(nèi)容(這個(gè)叫分組或子正則)。我們?cè)谡齽t表達(dá)式內(nèi)括號(hào)里寫(xiě)的內(nèi)容會(huì)被認(rèn)為是子正則表達(dá)式,所匹配的結(jié)果也會(huì)被記錄下來(lái)供后面使用。我們暫且不去理會(huì)這個(gè)特性。

方括號(hào)的作用:[]

[abc]表示a或者b或者c中的任意一個(gè)字符。

例:

var reg = /^[abc]/;//這個(gè)有點(diǎn)像/^(a|b|c)/str='bbs.zhufengpeixun.cn';alert(reg.exec(str));;//返回結(jié)果是b。

例:

reg = /^[abc]/;str='test';alert(reg.exec(str));//這次的結(jié)果就是null了。

我們?cè)谧肿址现惺褂萌缦碌谋硎痉绞?[a-z],[A-Z],[0-9],分別表示小寫(xiě)字母,大寫(xiě)字母,數(shù)字。例如:

reg = /^[a-zA-Z][a-zA-Z0-9_]+/;  //后面這個(gè)其實(shí)這個(gè)就是元字符\w表示的含意str='test';alert(reg.exec(str));//結(jié)果是整個(gè)test,正則的意思是開(kāi)頭必須是英文字母,后面可以是英文字母或者數(shù)字以及下劃線。
關(guān)于正則中的連續(xù)字符

在正則中/[0-9]/表示匹配字符從0到9中的任意一個(gè),/[a-z]/表示匹配從a到z中的任意一個(gè)字母只要是在ASCII碼表里連續(xù)出現(xiàn)的字符,都可以用這樣的表示法。

請(qǐng)百度一下“ASCII碼表”,參照里面字符出現(xiàn)的順序和對(duì)應(yīng)的16進(jìn)制或10進(jìn)制的編碼。

比如var reg=/^[!-z]$/; 就會(huì)匹配從字符“!”開(kāi)始,到字符“z”結(jié)束的任意一個(gè)字符。

var reg=/^[!-z]$/;alert(reg.test("8"));//true,alert(reg.test("*"))//true,alert(reg.test("}"))//false,因?yàn)?}"不在從!到z的這個(gè)范圍內(nèi)

正則/^[!-z]$/也可以用16進(jìn)制來(lái)表示。如果用16進(jìn)制表示,則需要用\u開(kāi)頭,表示這是在以16進(jìn)制的方式定義unicode字符,并且后邊的16進(jìn)制的編碼要寫(xiě)成四位,不足4位的前邊補(bǔ)0。則上邊的那個(gè)正則,也可以寫(xiě)成

var reg=/^[\u0021-\u007a]$/;// 字符“!”對(duì)應(yīng)的16進(jìn)制編碼是21,字符“z”的16進(jìn)制編碼是7a。

這種方式。中文是擴(kuò)展的ASCII字符編碼,匹配UTF8中文的正則是:/^[\u4e00-\u9fa5]+$/

php中utf-8編碼下用正則表達(dá)式匹配漢字的正則是:/^[\x{4e00}-\x{9fa5}]+$/u

注意:寫(xiě)成[1-13]不是表示從數(shù)字1到數(shù)字13,而是表示從1到1和3,也就是1和3。因?yàn)檎齽t里是在表示連續(xù)出現(xiàn)的字符,而不是數(shù)字。

反字符集合[^abc]

^在正則表達(dá)式開(kāi)始部分的時(shí)候表示開(kāi)頭的意思,例如/^c/表示開(kāi)頭是c;但是在字符集和中,它表示的是類似““的意思,例如[^abc]就表示不能是a,b或者c中的任何一個(gè)。例如:

var reg = /[^abc]/;var str='blueidea';alert(reg.exec(str));

返回的結(jié)果是l,因?yàn)樗堑谝粋€(gè)非abc的字符(即第一個(gè)b沒(méi)有匹配)。同樣:

例:

var reg = /[^abc]/;var str='cbazhufengpeixun';alert(reg.exec(str));

輸出z,前三個(gè)字符都是[abc]集合中的。由此我們可知:[^0-9]表示非數(shù)字,[^a-z]表示非小寫(xiě)字母,依次類推。


邊界與非邊界

\b表示的邊界的意思,也就是說(shuō),只有字符串的開(kāi)頭和結(jié)尾才算數(shù)。例如/\bc/就表示字符串開(kāi)始的c??聪旅娴睦樱?/p>

/\bc/.exec('cainiao');//返回結(jié)果c。匹配到了左邊界的c字符。
/\bc/.exec('???c');//仍然返回c,不過(guò)這次返回的是右側(cè)邊界的c。
/\bc/.exec('bcb');//這次匹配失敗,因?yàn)閎cb字符串中的c被夾在中間,既不在左邊界也不再右邊界。

\b對(duì)應(yīng)\B表示非邊界。例如:

/\Bc/.exec('bcb');//這次會(huì)成功地匹配到bcb中的c,。然而
/\Bc/.exec('cainiao');//則會(huì)返回null。因?yàn)閈B告訴正則,只匹配非邊界的c。

數(shù)字與非數(shù)字

\d表示數(shù)字的意思,相反,\D表示非數(shù)字。

例:

/\d/.exec('cainiao8')//返回的匹配結(jié)果為8,因?yàn)樗堑谝粋€(gè)數(shù)字字符。

例:

/\D/.exec('cainiao8');//返回c,第一個(gè)非數(shù)字字符。
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
JavaScript正則表達(dá)式
愛(ài)創(chuàng)課堂前端js基礎(chǔ) 正則表達(dá)式 正則的概述
正則表達(dá)式中常用的模式修正符有i、g、m、s、U、x、a、D、e 等。
js 判斷字符串中是否包含某個(gè)字符串
Nodejs正則表達(dá)式函數(shù)之match、test、exec、search、split、replace使用詳解 | 微學(xué)客
JavaScript 正則表達(dá)exec與match的區(qū)別說(shuō)明
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服