亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

檢查黑名單字符的數組

檢查黑名單字符的數組

30秒到達戰場 2023-02-17 17:25:31
我有一個每次運行都未知的數組我有這個功能function checkIllegal(args, refuse) {        var block = fs.readFileSync(`block.txt`, 'utf-8');        var refuse = block.split(',');        var args = message.content.slice(prefix.length).trim().split(/ +/g);        for (let i = 0; i < refuse.length; i++) {          for (let j = 0; j < args.length; j++) {            console.log(refuse[i], args[j])            if (args[j].includes(refuse[i])) {              console.log("Blacklisted")              illegal = "true";            }          }        }        illegal = "false";        return false;      } // Check for illegal arguments.它會找到列入黑名單的字符,但只有當沒有多個字符時才會發現,例如,如果有一個,它就會阻止;但如果有兩個像 ;;我該如何解決這個問題并使其正常工作?注意:下面給出的答案有效,但僅適用于硬編碼數組。
查看完整描述

2 回答

?
海綿寶寶撒

TA貢獻1809條經驗 獲得超8個贊

我會在函數外構建refuse和數組并將它們作為參數傳遞。args


const refuse = [">", ";", "&", ","]

const args = [">>>>", ";;;;;;", "&&", ",,"]



function checkIllegal(refuse, args) {

  let illegal = false;

  refuse.forEach(e => {

    args.forEach(string => {

      if (string.includes(e)) illegal = true;

      console.log("Blacklisted");

    });

  });

  return illegal;

}


console.log(checkIllegal(refuse, args));

這仍然基于整個數組而不是每個字符串返回 true 或 false ,這是你需要的嗎?

否則我不會在函數內部而是在函數外部循環遍歷 args,然后您可以檢查每個字符串。


查看完整回答
反對 回復 2023-02-17
?
楊__羊羊

TA貢獻1943條經驗 獲得超7個贊

https://jsfiddle.net/x24qnes6/


以下解決方案適用于單個字符和多個字符


function isRefused() {

  const refuse = ">,>>,>,&,|,;,".split(',')

  const args = "; ;; | > << >>".trim().split(/ +/g);

  let illegal = false;

   refuse.forEach(r => {

      args.forEach(a => {

        if (a.includes(r)) {

          console.log(`${a} is blacklisted`)

          illegal = true;

        }

      })

    })

  return illegal;

}


console.log(`Blacklisted? ${isRefused()}`)

你必須反過來檢查。args[j]有沒有refused[i]

然而,更好的方法是為此使用正則表達式。


查看完整回答
反對 回復 2023-02-17
  • 2 回答
  • 0 關注
  • 118 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號