javascript學(xué)習(xí)(3)正則表達(dá)式學(xué)習(xí)小結(jié)

最近在學(xué)PHP跃须,js時(shí)需要用到正則表達(dá)式蒙具,盡管在學(xué)Python時(shí)學(xué)了一些但是不夠系統(tǒng)球榆。每次看到繁瑣的正則,就淺嘗輒止禁筏。在此做一個(gè)總結(jié)持钉,以便自己后續(xù)的學(xué)習(xí)。

什么是正則表達(dá)式

正則表達(dá)式(regular expression)描述了一種字符串匹配的模式篱昔,按照某種規(guī)則去匹配符合條件的字符串每强。

為什么使用正則表達(dá)式?

通過(guò)使用正則表達(dá)式州刽,可以:

  • 測(cè)試字符串內(nèi)的模式空执。

例如,可以測(cè)試輸入字符串穗椅,以查看字符串內(nèi)是否出現(xiàn)電話號(hào)碼模式或信用卡號(hào)碼模式辨绊。這稱為數(shù)據(jù)驗(yàn)證。

  • 查找匹表,替換文本门坷。

可以使用正則表達(dá)式來(lái)識(shí)別文檔中的特定文本,完全刪除該文本或者用其他文本替換它桑孩。

  • 基于模式匹配從字符串中提取子字符串。

可以查找文檔內(nèi)或輸入域內(nèi)特定的文本框冀。

正則表達(dá)式語(yǔ)法

正則表達(dá)式由兩種基本字符類(lèi)型組成:

  • 原義文本字符

  • 元字符

元字符是正則表達(dá)式中有特殊含義的非字母字符流椒。

普通字符

普通字符包括沒(méi)有顯式指定為元字符的所有可打印和不可打印字符。這包括所有大寫(xiě)和小寫(xiě)字母明也、所有數(shù)字宣虾、所有標(biāo)點(diǎn)符號(hào)和一些其他符號(hào)。

非打印字符

字符 描述
\cx 匹配由x指明的控制字符温数。例如绣硝,\cM匹配一個(gè)Control-M或回車(chē)符。x的值必須為A-Z或a-z之一撑刺。否則鹉胖,將c視為一個(gè)原義的'c'字符。
\f 匹配一個(gè)換頁(yè)符。等價(jià)于 \x0c 和 \cL甫菠。
\n 匹配一個(gè)換行符挠铲。等價(jià)于 \x0a 和 \cJ。
\r 匹配一個(gè)回車(chē)符寂诱。等價(jià)于 \x0d 和 \cM拂苹。
\s 匹配任何空白字符,包括空格痰洒、制表符瓢棒、換頁(yè)符等等。等價(jià)于 [ \f\n\r\t\v]丘喻。
\S 匹配任何非空白字符脯宿。等價(jià)于 [^ \f\n\r\t\v]。
\t 匹配一個(gè)制表符仓犬。等價(jià)于 \x09 和 \cI嗅绰。
\v 匹配一個(gè)垂直制表符。等價(jià)于 \x0b 和 \cK搀继。

特別字符

所謂特殊字符窘面,就是一些有特殊含義的字符,如上面說(shuō)的"*.txt"中的*叽躯,簡(jiǎn)單的說(shuō)就是表示任何字符串的意思财边。如果要查找文件名中有*的文件,則需要對(duì)*進(jìn)行轉(zhuǎn)義点骑,即在其前加一個(gè)\酣难。ls *.txt。正則表達(dá)式有以下特殊字符黑滴。

字符 描述
$ 匹配輸入字符串的結(jié)尾位置憨募。如果設(shè)置了 RegExp 對(duì)象的 Multiline 屬性,則 $ 也匹配 '\n' 或 '\r'袁辈。要匹配 $ 字符本身菜谣,請(qǐng)使用 $。
( ) 標(biāo)記一個(gè)子表達(dá)式的開(kāi)始和結(jié)束位置晚缩。子表達(dá)式可以獲取供以后使用尾膊。要匹配這些字符,請(qǐng)使用 \(\)荞彼。
* 匹配前面的子表達(dá)式零次或多次冈敛。要匹配 * 字符,請(qǐng)使用 \*鸣皂。
+ 匹配前面的子表達(dá)式一次或多次抓谴。要匹配 + 字符暮蹂,請(qǐng)使用 \+
. 匹配除換行符 \n之外的任何字符齐邦。要匹配 .椎侠,請(qǐng)使用 \。
[ 標(biāo)記一個(gè)中括號(hào)表達(dá)式的開(kāi)始措拇。要匹配 [我纪,請(qǐng)使用 \[
? 匹配前面的子表達(dá)式零次或一次丐吓,或指明一個(gè)非貪婪限定符浅悉。要匹配 ? 字符,請(qǐng)使用 ?券犁。
\ 將下一個(gè)字符標(biāo)記為或特殊字符术健、或原義字符、或向后引用粘衬、或八進(jìn)制轉(zhuǎn)義符荞估。例如, 'n' 匹配字符 'n'稚新。'\n' 匹配換行符勘伺。序列 '\\' 匹配 "",而 '\(' 則匹配 "("褂删。
^ 匹配輸入字符串的開(kāi)始位置飞醉,除非在方括號(hào)表達(dá)式中使用,此時(shí)它表示不接受該字符集合屯阀。要匹配 ^ 字符本身缅帘,請(qǐng)使用 \^
{ 標(biāo)記限定符表達(dá)式的開(kāi)始难衰。要匹配 {钦无,請(qǐng)使用 \{
指明兩項(xiàng)之間的一個(gè)選擇盖袭。要匹配 丨失暂,請(qǐng)使用 \丨

在表格里輸入|嘗試過(guò)\|苍凛,但可以用中文gun來(lái)假裝一下哈哈哈哈

限定符

限定符用來(lái)指定正則表達(dá)式的一個(gè)給定組件必須要出現(xiàn)多少次才能滿足匹配趣席。有*或+或?或{n}或{n,}或{n,m}共6種兵志。

*醇蝴、+和?限定符都是貪婪的,因?yàn)樗鼈儠?huì)盡可能多的匹配文字想罕,只有在它們的后面加上一個(gè)?就可以實(shí)現(xiàn)非貪婪或最小匹配悠栓。

字符 描述
* 匹配前面的子表達(dá)式零次或多次霉涨。例如,zo* 能匹配 "z" 以及 "zoo"惭适。* 等價(jià)于{0,}笙瑟。
+ 匹配前面的子表達(dá)式一次或多次。例如癞志,'zo+' 能匹配 "zo" 以及 "zoo"往枷,但不能匹配 "z"。+ 等價(jià)于 {1,}凄杯。
? 匹配前面的子表達(dá)式零次或一次错洁。例如,"do(es)?" 可以匹配 "do" 或 "does" 中的"do" 戒突。? 等價(jià)于 {0,1}屯碴。
{n} n 是一個(gè)非負(fù)整數(shù)。匹配確定的 n 次膊存。例如导而,'o{2}' 不能匹配 "Bob" 中的 'o',但是能匹配 "food" 中的兩個(gè) o隔崎。
{n,} n 是一個(gè)非負(fù)整數(shù)今艺。至少匹配n 次。例如仍稀,'o{2,}' 不能匹配 "Bob" 中的 'o'洼滚,但能匹配 "foooood" 中的所有 o。'o{1,}' 等價(jià)于 'o+'技潘。'o{0,}' 則等價(jià)于 'o*'遥巴。
{n,m} m 和 n 均為非負(fù)整數(shù),其中n <= m享幽。最少匹配 n 次且最多匹配 m 次铲掐。例如,"o{1,3}" 將匹配 "fooooood" 中的前三個(gè) o值桩。'o{0,1}' 等價(jià)于 'o?'摆霉。請(qǐng)注意在逗號(hào)和兩個(gè)數(shù)之間不能有空格。

定位符

用來(lái)描述字符串或單詞的邊界奔坟。

^和$分別指字符串的開(kāi)始與結(jié)束携栋。

\b描述單詞的前或后邊界。

\B表示非單詞邊界咳秉。

注:不能對(duì)定位符使用限定符婉支。

操作符優(yōu)先級(jí)

轉(zhuǎn)義符 > 圓括號(hào)和方括號(hào) > 限定符 > 位置和順序 > “或”操作

一些匹配規(guī)則

我們可以用[]來(lái)構(gòu)建一個(gè)簡(jiǎn)單的類(lèi)。所謂的類(lèi)就是指符合某些特性的對(duì)象澜建,即匹配方括號(hào)內(nèi)任意一個(gè)都可向挖。 當(dāng)在一組方括號(hào)里使用^是蝌以,它表示“非”或“排除”的意思,常常用來(lái)剔除某個(gè)字符何之。即反向類(lèi)跟畅。另外,還給我們提供了范圍類(lèi)溶推,連字號(hào)可以表示一個(gè)字符的范圍徊件,[a-z]即匹配所有的小寫(xiě)字母。

下面舉一些例子:

[a-z] //匹配所有的小寫(xiě)字母

[A-Z] //匹配所有的大寫(xiě)字母

[a-zA-Z] //匹配所有的字母

[0-9] //匹配所有的數(shù)字

[0-9.-] //匹配所有的數(shù)字蒜危,句號(hào)和減號(hào)

[ \f\r\t\n] //匹配所有的白字符

\d 匹配一個(gè)數(shù)字字符庇忌。等價(jià)于 [0-9]。

\D 匹配一個(gè)非數(shù)字字符舰褪。等價(jià)于 [^0-9]皆疹。

另外,特殊字符"."等價(jià)[^\r\n]在正規(guī)表達(dá)式中用來(lái)表示除了回車(chē)換行之外的所有字符占拍。

"\d"等價(jià)[0-9]在正規(guī)表達(dá)式中用來(lái)表示數(shù)字字符略就。

"\D"等價(jià)[^0-9]在正規(guī)表達(dá)式中用來(lái)表示非數(shù)字字符。

"\s"等價(jià)[\t\n\x0B\f\r]在正規(guī)表達(dá)式中用來(lái)表示空白符晃酒。

"\S"等價(jià)[^\t\n\x0B\f\r]在正規(guī)表達(dá)式中用來(lái)表示非空白符表牢。

"\w"等價(jià)[a-zA-Z_0-9]在正規(guī)表達(dá)式中用來(lái)表示數(shù)字字母下劃線。

"\W"等價(jià)[^a-zA-Z_0-9]在正規(guī)表達(dá)式中用來(lái)表示非單詞字符贝次。

量詞

到現(xiàn)在為止崔兴,你已經(jīng)知道如何去匹配一個(gè)字母或數(shù)字,但更多的情況下蛔翅,可能要匹配一個(gè)單詞或一組數(shù)字敲茄。一個(gè)單詞有若干個(gè)字母組成,一組數(shù)字有若干個(gè)單數(shù)組成山析。跟在字符或字符簇后面的花括號(hào)({})用來(lái)確定前面的內(nèi)容的重復(fù)出現(xiàn)的次數(shù)堰燎。

如:

^a{4}$ aaaa

^a{2,}$ 包含多于兩個(gè)a的字符串

^a{1,3}$ a,aa或aaa

這些例子描述了花括號(hào)的三種不同的用法。一個(gè)數(shù)字笋轨,{x}的意思是“前面的字符或字符簇只出現(xiàn)x次”秆剪;一個(gè)數(shù)字加逗號(hào),{x,}的意思是“前面的內(nèi)容出現(xiàn)x或更多的次數(shù)”爵政,之前所說(shuō)的+即表示比配一次或多次仅讽,等同于{1,};兩個(gè)用逗號(hào)分隔的數(shù)字钾挟,{x,y}表示“前面的內(nèi)容至少出現(xiàn)x次洁灵,但不超過(guò)y次”。

^[a-zA-Z0-9_]{1,}$ //所有包含一個(gè)以上的字母等龙、數(shù)字或下劃線的字符串

^[0-9]{1,}$ //所有的正數(shù)

^-{0,1}[0-9]{1,}$ //所有的整數(shù)

^-{0,1}[0-9]{0,}.{0,1}[0-9]{0,}$ //所有的小數(shù)

另外处渣,字符表示出現(xiàn)零次或一次(最多出現(xiàn)一次)蛛砰;

+字符表示出現(xiàn)一次或多次(至少出現(xiàn)一次);

*字符表示出現(xiàn)零次或多次(任意次)罐栈;

分組

在某些情況,如果想匹配apple3次泥畅,估計(jì)大家會(huì)這樣寫(xiě):apple{3}

可是查找結(jié)果卻是:

錯(cuò)誤查找實(shí)例

因此荠诬,我們需要用到()分組。應(yīng)該寫(xiě)成(apple){3}

查找結(jié)果就是:
正確實(shí)例

選擇

用圓括號(hào)將所有選擇項(xiàng)括起來(lái)位仁,相鄰的選擇項(xiàng)之間用|分隔柑贞。但用圓括號(hào)會(huì)有一個(gè)副作用,是相關(guān)的匹配會(huì)被緩存聂抢,此時(shí)可用?:放在第一個(gè)選項(xiàng)前來(lái)消除這種副作用钧嘶。

反向引用

對(duì)一個(gè)正則表達(dá)式模式或部分模式兩邊添加圓括號(hào)將導(dǎo)致相關(guān)匹配存儲(chǔ)到一個(gè)臨時(shí)緩沖區(qū)中,所捕獲的每個(gè)子匹配都按照在正則表達(dá)式模式中從左至右所遇到的內(nèi)容存儲(chǔ)琳疏。存儲(chǔ)子匹配的緩沖區(qū)編號(hào)從 1 開(kāi)始有决,連續(xù)編號(hào)直至最大 99 個(gè)子表達(dá)式。每個(gè)緩沖區(qū)都可以使用 '\n' 訪問(wèn)空盼,其中 n 為一個(gè)標(biāo)識(shí)特定緩沖區(qū)的一位或兩位十進(jìn)制數(shù)书幕。

可以在分組內(nèi)加上非捕獲元字符 '?:', '?=', or '?!' 來(lái)忽略對(duì)相關(guān)匹配的保存。

前瞻

正則表達(dá)式從文本頭部向尾部開(kāi)始解析揽趾,文本尾部方向稱為台汇。

前瞻就是在正則表達(dá)式匹配到規(guī)則的時(shí)候,向前檢查是否符合斷言篱瞎,后顧則相反苟呐。正向前瞻和負(fù)向前瞻就是判斷一個(gè)正則之后還沒(méi)有完,還需要在符合一個(gè)條件俐筋。

符合和不符合特定斷言稱之為肯定/正向匹配和否定/反向匹配掠抬。

正向前瞻 exp(?=assert)

反向前瞻 exp(?!assert)

正向后顧 exp(?<=assert)

反向后顧 exp(?<!assert)

(js不支持后顧)

exp為原正則部分,assert部分即斷言部分也是正則表達(dá)式校哎,?=?!两波,前者為正向前瞻,在任何開(kāi)始匹配圓括號(hào)內(nèi)的正則表達(dá)式模式的位置來(lái)匹配搜索字符串闷哆,后者為負(fù)向前瞻腰奋,在任何開(kāi)始不匹配該正則表達(dá)式模式的位置來(lái)匹配搜索字符串。

javascript 中正則表達(dá)式的應(yīng)用

js中通過(guò)內(nèi)置對(duì)象REGEXP支持正則表達(dá)式抱怔。

有兩種方法實(shí)例化RegExp對(duì)象:

1.字面量 var reg = / \bis\b /g;

2.構(gòu)造函數(shù) var reg = new RegExp ('\bis\b','g');/*在Js中\(zhòng)也是特殊字符所以需要轉(zhuǎn)義,第一個(gè)是正則表達(dá)式文本劣坊,第二個(gè)字符串是標(biāo)志位,g屈留,全局匹配*/

javascript中正則表達(dá)式對(duì)象的屬性

g:global 全局匹配局冰,不添加测蘑,匹配到第一個(gè)為止

i:ignore case 不分大小寫(xiě)

m: multiple lines 多行搜索,使^變?yōu)樾碌男惺?/p>

lastIndex:是當(dāng)前表達(dá)式匹配內(nèi)容的最后一個(gè)字符的下一個(gè)位置

source:正則表達(dá)式的文本字符串

javascript中正則對(duì)象本身的方法

RegExp.prototype.test(str)

作用:用于測(cè)試字符串參數(shù)中是否存在匹配正則表達(dá)式模式的字符串

符合返回true,否則返回false

調(diào)用實(shí)例:


var reg = / \bis\b /g;

reg.test(str);

但當(dāng)使用全局g屬性標(biāo)識(shí)時(shí)康二,會(huì)修改lastIndex值碳胳,在匹配到最后一項(xiàng)之后會(huì)重置為0,因此會(huì)出現(xiàn)結(jié)果為反復(fù)的循環(huán)true沫勿、false挨约,出現(xiàn)結(jié)果不穩(wěn)定

其實(shí)test的本意,其實(shí)就是測(cè)試能否匹配上产雹。

RegExp.prototype.exec(str)

作用:使用正則表達(dá)式模式對(duì)字符串執(zhí)行搜索诫惭,并將更新全局RegExp對(duì)象的屬性以反映匹配結(jié)果。

如果沒(méi)有匹配到的文本則返回null蔓挖,否則返回一個(gè)結(jié)果數(shù)組夕土。

此數(shù)組有兩個(gè)屬性,

1.index:聲明匹配文本的第一個(gè)字符的位置

2.input:存放被檢索的字符串string

在非全局調(diào)用時(shí)瘟判,返回?cái)?shù)組:

第一個(gè)元素是與正則表達(dá)式相匹配的文本

第二個(gè)元素是與RegExpObject的第一個(gè)子表達(dá)式相匹配到的文本

第三個(gè)元素是與RegExpObject的第二個(gè)子表達(dá)式相匹配到的文本隘弊,以此類(lèi)推

javascript中字符串的方法

String.prototype.search(reg)

作用:用于檢索字符串中指定的子字符串,或檢索與正則表達(dá)式相匹配的子字符串荒适。

方法返回第一個(gè)匹配結(jié)果 index梨熙,查找不到返回-1

不執(zhí)行全局匹配,忽略g刀诬,總是從字符串的開(kāi)始進(jìn)行搜索咽扇。

String.prototype.match(reg)

作用:用于檢索字符串,以找到一個(gè)或多個(gè)與regxp匹配的文本

regxp是否具有標(biāo)志位g對(duì)結(jié)果影響很大

在非全局調(diào)用時(shí)陕壹,返回?cái)?shù)組质欲,沒(méi)有匹配到的文本則返回null

返回?cái)?shù)組第一個(gè)元素存放的是匹配文本,而其余的元素存放的是與正則表達(dá)式的子表達(dá)式匹配的文本

除了常規(guī)的數(shù)組元素之外糠馆,返回的數(shù)組還含有2個(gè)對(duì)象屬性

1.index:聲明匹配文本的第一個(gè)字符的位置

2.input:聲明對(duì)stringObject的引用

而在全局調(diào)用時(shí)嘶伟,返回的數(shù)組存放的是字符串中所有的匹配子串,而且也沒(méi)有index和input屬性又碌,就告訴你匹配結(jié)果九昧。

String.prototype.split(reg)

作用:我們經(jīng)常用split來(lái)把字符串分割為字符數(shù)組,而在一些復(fù)雜的情況下我們可以用正則表達(dá)式來(lái)分割毕匀。

String.prototype.replace(reg)

作用:替換內(nèi)容,三種方法铸鹰。

replace(str,replaceStr)

replace(reg,replaceStr)

replace(reg,function) 如將a1b2c3替換為a2b3c4

function(match,group,index,origin)參數(shù)含義

function會(huì)在每次匹配替換時(shí)調(diào)用,有4個(gè)參數(shù)

1.匹配字符串

2.正則表達(dá)式分組內(nèi)容皂岔,沒(méi)有分組則沒(méi)有參數(shù)

3.匹配項(xiàng)在字符串中的index

4.原字符串


正則表達(dá)式測(cè)試工具:https://regexper.com

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末蹋笼,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌剖毯,老刑警劉巖圾笨,帶你破解...
    沈念sama閱讀 216,544評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異逊谋,居然都是意外死亡擂达,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)涣狗,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人舒憾,你說(shuō)我怎么就攤上這事镀钓。” “怎么了镀迂?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,764評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵丁溅,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我探遵,道長(zhǎng)窟赏,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,193評(píng)論 1 292
  • 正文 為了忘掉前任箱季,我火速辦了婚禮涯穷,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘藏雏。我一直安慰自己拷况,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,216評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布掘殴。 她就那樣靜靜地躺著赚瘦,像睡著了一般。 火紅的嫁衣襯著肌膚如雪奏寨。 梳的紋絲不亂的頭發(fā)上起意,一...
    開(kāi)封第一講書(shū)人閱讀 51,182評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音病瞳,去河邊找鬼揽咕。 笑死,一個(gè)胖子當(dāng)著我的面吹牛套菜,可吹牛的內(nèi)容都是我干的心褐。 我是一名探鬼主播,決...
    沈念sama閱讀 40,063評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼笼踩,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼逗爹!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 38,917評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤掘而,失蹤者是張志新(化名)和其女友劉穎挟冠,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體袍睡,經(jīng)...
    沈念sama閱讀 45,329評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡知染,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,543評(píng)論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了斑胜。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片控淡。...
    茶點(diǎn)故事閱讀 39,722評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖止潘,靈堂內(nèi)的尸體忽然破棺而出掺炭,到底是詐尸還是另有隱情,我是刑警寧澤凭戴,帶...
    沈念sama閱讀 35,425評(píng)論 5 343
  • 正文 年R本政府宣布涧狮,位于F島的核電站,受9級(jí)特大地震影響么夫,放射性物質(zhì)發(fā)生泄漏者冤。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,019評(píng)論 3 326
  • 文/蒙蒙 一档痪、第九天 我趴在偏房一處隱蔽的房頂上張望涉枫。 院中可真熱鬧,春花似錦腐螟、人聲如沸拜银。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,671評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)尼桶。三九已至,卻和暖如春锯仪,著一層夾襖步出監(jiān)牢的瞬間泵督,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,825評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工庶喜, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留小腊,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,729評(píng)論 2 368
  • 正文 我出身青樓久窟,卻偏偏與公主長(zhǎng)得像秩冈,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子斥扛,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,614評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容