Как проверить, содержит ли строка только определенные символы

Строка: 10.0.3.1, 10.0.0.0/16,2001:db8:100:934b::3:1, 2001: db8: 100: 934b :: / 64
как проверить это перемешивание? Может содержать только . , / :, Другие специальные символы не допускаются. Просто проверьте, есть ли только эти 4 символа.

$string = '10.0.3.1, 10.0.0.0/16,2001:db8:100:934b::3:1, 2001:db8:100:934b::/64';
if (checkString($string)) {
return true;
} else {
return false;
}

function checkString(string $string) {
// how to check the string here?
}

мой шаблон не работает

if (preg_match('/^(\.|\,|\/|\:)+$/', $string)) {
var_dump('yes');
} else {
var_dump('no');// return no
}

// I try this , and got an error
if (preg_match('/^(.*[^A-Za-z0-9.,/:]).*$/', $input)) {
var_dump('yes');
} else {
var_dump('no');
}
// preg_match(): Unknown modifier ':'

0

Решение

Вы забываете, что в вашей строке тоже есть место. Попробуйте заменить свою функцию этим,

function checkString(string $string) {
if (preg_match('/^[a-zA-Z0-9.\/:, ]+$/', $string)) {
var_dump('yes');
} else {
var_dump('no');// return no
}
}
1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector