如何校验以下字符串?
字符串只能包换. , / :
,不能包含其他字符,只需要校验字符串是否只包含以上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) {
// 怎么校验?
}
// 尝试了下面的,结果不是我想要的
if (preg_match('/^(\.|\,|\/|\:)+$/', $string)) {
var_dump('yes');
} else {
var_dump('no');//返回了no
}
// 找到了答案
if (preg_match('/^[a-zA-Z0-9.\/:, ]+$/', $string)) {
var_dump('yes');
} else {
var_dump('no');
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
不为空 /^[.,/:]+$/
可为空 /^[.,/:]*$/
你这个提问是不是提错了。一个字符串 只 包含'.,/:' 有什么校验的意义
正则
^[.,/:]+$
/^(\.|\,|\/|\:|[A-Za-z0-9]|\s)+$/
这样?