0

I wanted to make an anti links command in my discord bot the problem is when a user sends a link with other words for example(hi this is the link www.example.com ) the bot doesn't delete the message but it deletes it if the message has only a link

This is the code that I use

function is_url(str) {
  let regexp = /^(?:(?:https?|ftp):\/\/)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})))(?::\d{2,5})?(?:\/\S*)?$/;
  if(regexp.test(str)) {
    return true;
  } else {
    return false;
  }
  
}
if(is_url(message.content)) === true) {

    await message.delete()
      return message.channel.send("You can not send link here :/")  
    }
Chihab
  • 33
  • 8
  • Does this answer your question? [Detect URLs in text with JavaScript](https://stackoverflow.com/questions/1500260/detect-urls-in-text-with-javascript) – Jakye Sep 28 '20 at 18:59
  • 1
    You used `^$` in your regex which by definition will only match if the link is the only thing in the message. Remove the first `^` and last `$` if you don't want this. – Lioness100 Sep 28 '20 at 19:19
  • @Lioness100 thank you – Chihab Sep 28 '20 at 20:36

0 Answers0