我需要检查一个变量是否包含除了a-z
、A-Z
、0-9
和.
(句点)之外的任何内容。
我需要检查一个变量是否包含除了a-z
、A-Z
、0-9
和.
(句点)之外的任何内容。
有两种方法可以实现。
判断变量中是否包含任何一个不在允许范围内的字符。这可以通过使用负字符类 [^...] 来实现:
preg_match('/[^a-zA-Z0-9\.]/', $your_variable);
另一个选择是确保字符串中的每个字符都在允许的范围内:
!preg_match('/^[a-zA-Z0-9\.]*$/', $your_variable);
if (preg_match('/[^A-Z\d.]/i', $var))
print $var;
if (preg_match("/[^A-Za-z0-9.]/", $myVar)) {
// make something
}
这里的关键点是在[]组中使用"^" - 它匹配除括号内字符以外的所有字符。
如果您不想使用正则表达式引擎,可以通过白名单字符来截取字符串,然后检查字符串是否为空。
是的,trim()
函数允许通过“yatta-yatta”点表达字符范围。请在Native PHP functions that allow double-dot range syntax中了解更多信息。
代码:(Demo)
if (ltrim($str, 'A..Za..z0..9.') !== '') {
// all good
}