javascripthtmlonclickstreet-address

Asking user for home address using Regex


I want to make a prompt asking a user for a valid home address using regex.

I have tested the regex im using on regex101.com but the code still doesnt work no matter what I write...

Example of address that should pass: 26 John Street, City Road

What have I done wrong?

function button1() { let address = prompt("Please enter your address"); var regex = /[\d+[ ](?:[A-Za-z0-9.-]+[ ]?)+(?:Avenue|Lane|Road|Boulevard|Drive|Street|Ave|Dr|Rd|Blvd|Ln|St).?]/;

  if (regex.test(address)) {
    return true;
  } else {
    console.log("Please enter a valid address");
    return false;

  }
}

Solution

  • I think you shouldn't have the whole expression inside [ and ]

    That causes it not to be a sequence of symbols to be expected one-after-the-other, but rather a set of alternatives (which I don't think is what you intended).

    So try this:

    function button1() {
      //  let address = prompt("Please enter your address");
      const address = "26 John Street, City Road"
    
      var regex = /\d+[ ](?:[A-Za-z0-9.-]+[ ]?)+(?:Avenue|Lane|Road|Boulevard|Drive|Street|Ave|Dr|Rd|Blvd|Ln|St).?/;
    
      if (regex.test(address)) {
        console.log("Valid")
        return true;
      } else {
        console.log("Please enter a valid address");
        return false;
    
      }
    }
    
    button1()