I need a string which consists of some numbers, comma, undersocre, slash, hyphen and space.
I am almost ok. Here is my code so far.
$regex = '#^[0-9-_,/\s]+$#';
if(preg_match($regex, $string)){
return true;
} else {
return false;
}
But I want to contain at least 4 digit within 0 to 9.
for example, These are the values I want to valid:
09-12345678
123, 456, 789
12/ 34/ 56
These are the values I don't want to valid:
1,2
3/5/6
7-8-9
So, I tried like this.
$regex = '#^[0-9-_,/\s]{4,100}$#';
And,
$regex = '#^[0-9{4,100}-_,/\s]+$#';
But they are not true too. How can I do?
You can use a lookahead based regex:
~^(?=(?:\D*\d){4})[-0-9_,/\s]+$~
(?=(?:\\D*\\d){4})
is lookahead to assert presence of at least 4 digits in input. [...]
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.