如何检查字符串是否仅包含特定字符

时间:2018-11-09 08:46:11

标签: php regex

字符串: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 ':'

1 个答案:

答案 0 :(得分:1)

您忘记了字符串中也有空格。尝试以此替换功能,

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