【发布时间】:2016-10-13 12:05:10
【问题描述】:
我创建了这个函数,它允许我发送一个字符串作为参数,然后我可以选择要检查英语、瑞典语或数字的 id。如果它包含除接受字符之外的任何内容,则函数将返回 false,否则返回 true。
示例:
$text = 'I like pancakes'; //This should return as true
if(isCharValid($text, 'english')) {
die('returned as true');
}
else {
die('returned as false');
}
但是,我无法让正则表达式检测 Id 想要检测的内容,您可以在代码的 cmets 中准确地看到我希望它检测的内容。
这是我的功能
function isCharValid($string, $type){
if($type == 'english') { //String may contain A-Z, a-z, 0-9 and whitespace
return !preg_match('/[^A-Za-z0-9\s]/', $string);
}
else if($type == 'swedish'){ //String may contain A-Ö,a-ö,0-9 and whitespace
return !preg_match('/[^A-Za-z0-9åäöÅÄÖ\s]/', $string);
}
else if($type == 'number'){ //String may contain numbers 0-9, no WHITESPACES
return !preg_match('/[^0-9]*$/', $string);
}
else {
return false;
}
}
【问题讨论】:
-
它将始终返回
false,因为您没有填写第二个参数$type。如果打开错误报告,您会看到警告。
标签: php regex expression whitespace