ReRegExp: 使用正則表達(dá)式來生成字符串

基本上Mock數(shù)據(jù)的庫逝她,都會(huì)有支持使用正則表達(dá)式來mock字符串的庫徘禁,suchjs也一樣缩幸。

由于這個(gè)功能本身具有很大的獨(dú)立性集惋,所以單獨(dú)提成一個(gè)庫也非常常見孕似。JS里實(shí)現(xiàn)類似功能的庫已經(jīng)有不少,比較流行的比如 randexp芋膘,看其測試覆蓋率已經(jīng)達(dá)到100%鳞青,是一個(gè)測試良好的庫。

但這些庫比如 randexp为朋,開發(fā)時(shí)間比較偏早臂拓,導(dǎo)致有些功能支持得不是很全。對于suchjs而言习寸,有個(gè)很重要的設(shè)計(jì)就是胶惰,有時(shí)候需要對一些匹配分組進(jìn)行預(yù)設(shè)定,從而針對同一個(gè)正則表達(dá)式霞溪,不同的分組配置能生成不同的結(jié)果孵滞。這一點(diǎn) randexp 顯然是無法滿足的,首先鸯匹,randexp 不支持對某個(gè)分組預(yù)設(shè)定值坊饶;其次,randexp 也沒有對最新的命名分組語法做支持殴蓬。舉個(gè)例子來說:

var mockRule = /(http|https):\/\//;
// 這里針對第一個(gè)分組匿级,我想配置某些情況下蟋滴,只匹配出 http 或者 https
// 這在 randexp 這類的庫里是沒法實(shí)現(xiàn)的
// 在reregexp庫里實(shí)現(xiàn)了該功能
// 首先在reregexp里,實(shí)現(xiàn)命名表達(dá)式語法的解析
// 其次痘绎,在配置里支持了 namedGroupConf 配置
var mockRule = new ReRegExp('/(?<protocol>http|https):\\/\\//', {
   namedGroupConf: {
       // 會(huì)用該配置列表中的值強(qiáng)制替換分組中的值
       // 同時(shí)還會(huì)校驗(yàn)值是否符合分組的正則語法
      'protocol': ['http'] 
   }
}); 

另外津函,randexp 里也不支持最新的 u unicode flag,從而 /\u{4e00}/ 這種類似的語法寫法無法得到支持孤页。這些都是導(dǎo)致我決定自己開發(fā)一個(gè)正則模擬庫的原因尔苦。在這個(gè)庫 reregexp 里,對正則表達(dá)式的語法解析對各種邊界語法處理都完全按照js正則本身的規(guī)則進(jìn)行了實(shí)現(xiàn)行施,所以它具備了比 randexp 更完備更強(qiáng)大的功能允坚,更多的功能細(xì)節(jié)可以在 https://github.com/suchjs/reregexp github上可以看到,希望它能給如同我一樣有類似需求的人帶來一些幫助蛾号,如果你恰好用得到歡迎star和提issue屋讶。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市须教,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌斩芭,老刑警劉巖轻腺,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異划乖,居然都是意外死亡贬养,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進(jìn)店門琴庵,熙熙樓的掌柜王于貴愁眉苦臉地迎上來误算,“玉大人,你說我怎么就攤上這事迷殿《瘢” “怎么了?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵庆寺,是天一觀的道長蚊夫。 經(jīng)常有香客問我,道長懦尝,這世上最難降的妖魔是什么知纷? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮陵霉,結(jié)果婚禮上琅轧,老公的妹妹穿的比我還像新娘。我一直安慰自己踊挠,他們只是感情好乍桂,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般模蜡。 火紅的嫁衣襯著肌膚如雪漠趁。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天忍疾,我揣著相機(jī)與錄音闯传,去河邊找鬼。 笑死卤妒,一個(gè)胖子當(dāng)著我的面吹牛甥绿,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播则披,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼共缕,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了士复?” 一聲冷哼從身側(cè)響起图谷,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎阱洪,沒想到半個(gè)月后便贵,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡冗荸,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年承璃,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蚌本。...
    茶點(diǎn)故事閱讀 38,039評論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡盔粹,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出程癌,到底是詐尸還是另有隱情舷嗡,我是刑警寧澤,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布席楚,位于F島的核電站咬崔,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏烦秩。R本人自食惡果不足惜垮斯,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望只祠。 院中可真熱鬧兜蠕,春花似錦、人聲如沸抛寝。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至晶府,卻和暖如春桂躏,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背川陆。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工剂习, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人较沪。 一個(gè)月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓鳞绕,卻偏偏與公主長得像,于是被迫代替她去往敵國和親尸曼。 傳聞我的和親對象是個(gè)殘疾皇子们何,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,786評論 2 345

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