简体   繁体   中英

Html5 input pattern

I have this pattern .*?[az]([az])([az])([az]).*?(\\s+)(\\d+) from some online generator but it's not working.

I need pattern which allow:

"minimum 3 char length string, next single space, and next minimum 1 char integer" [abc 1] or the same but in different order "minimum 1 char integer, next single space, and next minimum 3 char length string" [3 gtf].

Thanks.

Try this one:

\d+\s\w{3,}|\w{3,}\s\d+

It either matches:

  1. One or more digits ( \\d+ ), followed by a single whitespace ( \\s ), followed by three or more word characters ( \\w{3,} ) (this is [a-zA-Z0-9], you can replace this part with [a-zA-Z] if you'd like).
  2. Three or more word characters (this is [a-zA-Z0-9], you can replace this part with [a-zA-Z] if you'd like), followed by a single whitespace, followed by one or more digits.

Regex101

The following expression should do what you describe:

[a-z]{3,}\s\d+|\d+\s[a-z]{3,}

Some notes:

  1. The {3,} construct allows you to specify repetitions within a given range. In general, it's {min,max} , but you can leave out either min or (as here) max to have an open-ended range. You can also specify an exact number of repeats by specifying a single number, eg {99} .

  2. The expression is essentially two complete expressions switched with alternation. Regular expressions don't allow you to say "exactly these things, in any order".

  3. I've used [az] to match the characters in the non-numeric part, as this is what you did in your original example.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM