第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

正則表達(dá)式檢測(cè)具有2+數(shù)字和2+字符的單詞

正則表達(dá)式檢測(cè)具有2+數(shù)字和2+字符的單詞

手掌心 2019-04-11 14:15:04
我需要一個(gè)正則表達(dá)式來(lái)檢測(cè)長(zhǎng)度為8個(gè)字符的單詞,其中包含2個(gè)以上的數(shù)字和2個(gè)以上的字符(沒(méi)有特殊字符)。我接近解決方案,我在regex101.com上做了正則表達(dá)式。問(wèn)題是包含一個(gè)數(shù)字的單詞對(duì)我的正則表達(dá)式來(lái)說(shuō)不應(yīng)該是相關(guān)的。我丟棄了包含最少7個(gè)字符的字符的所有單詞(?![A-Za-z]{7,})。我丟棄了包含最少7個(gè)數(shù)字的數(shù)字的所有單詞(?![\d]{7,})。我丟棄了包含最少2個(gè)數(shù)字和2個(gè)字符的單詞(?=[a-zA-Z\d]{2})[A-Za-z\d]{8}。為什么vaff8loe匹配?我創(chuàng)建了這個(gè)正則表達(dá)式,因?yàn)樵谖矣?******替換整個(gè)單詞之后。喜歡:papave23 ciao il mio pin papaver1 è reeredji332ji con vaff8loe 1234567o 123t123t papavero 9o 123t123y更換后(“正則表達(dá)式”,“********”)********ciao il mio pin papaver1 è reeredji332ji con ******** 1234567o ******** papavero 9o ********
查看完整描述

3 回答

?
冉冉說(shuō)

TA貢獻(xiàn)1877條經(jīng)驗(yàn) 獲得超1個(gè)贊

在你需要為你的解析應(yīng)用這么多條件的情況下(單詞必須有長(zhǎng)度== 8,2個(gè)字母字符,2個(gè)以上數(shù)字字符,沒(méi)有特殊字符),我認(rèn)為你應(yīng)該努力尋找你可以閱讀的解決方案而不是扔一切復(fù)雜的正則表達(dá)式中的一切。

您的代碼將如下所示:

let s = "papave23 ciao il mio pin papaver1 è reeredji332ji con vaff8loe 1234567o 123t123t papavero 9o 123t123y";


s = s.replace(/\b(?=(?:[0-9]*[a-zA-Z]){2})(?=(?:[a-zA-Z]*[0-9]){2})[a-zA-Z0-9]{8}\b/g, "********");


console.log(s);

目前還不清楚你在這里做了什么,最終的錯(cuò)誤和/或邏輯的變化將難以維持。相反,您可以利用函數(shù)替換參數(shù)來(lái)細(xì)分規(guī)則。你會(huì)有這樣的事情:

let s = "papave23 ciao il mio pin papaver1 è reeredji332ji con vaff8loe 1234567o 123t123t papavero 9o 123t123y";


// The first regex filters only 8-length words

s = s.replace(/\b\w{8}\b/g, 

    function(fullMatch) {

      // .match() can return null if no match is found, 

      // so I'm accounting for this.

      const digitMatch = fullMatch.match(/\d/g) || [];

      const letterMatch = fullMatch.match(/[a-zA-Z]/g) || [];

      const specialCharMatch = fullMatch.match(/\[^a-zA-Z0-9]/g);


      if (digitMatch.length >= 2

       && letterMatch.length >= 2

       && specialCharMatch === null) {

        return "********";

       } else {

        return fullMatch;

       }

  });


console.log(s);

它更冗長(zhǎng),但也更具可讀性和可調(diào)試性。


希望能幫助到你!


查看完整回答
反對(duì) 回復(fù) 2019-05-17
  • 3 回答
  • 0 關(guān)注
  • 600 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)