我需要检查一个变量是否包含除a-z、A-Z、0-9和.字符(句号)以外的任何内容。
a-z
A-Z
0-9
.
ss2ws0br1#
做这件事有两种方法。告诉变量是否包含允许范围内的任何一个字符 not。这是通过使用一个否定字符类[^...]来实现的:
preg_match('/[^a-zA-Z0-9\.]/', $your_variable);
另一种方法是确保字符串 * 中的每个字符都在允许的范围内:
!preg_match('/^[a-zA-Z0-9\.]*$/', $your_variable);
hsvhsicv2#
if (preg_match('/[^A-Z\d.]/i', $var)) print $var;
juzqafwq3#
if (preg_match("/[^A-Za-z0-9.]/", $myVar)) { // make something }
这里的关键点是在[]组中使用“^”-它匹配除了括号内的字符之外的所有字符。
yws3nbqq4#
如果你不想使用正则表达式引擎,你可以用白名单中的字符来修剪字符串,然后检查字符串是否为空。是的,trim()函数允许通过“yatta-yatta”点来表示字符范围。在Native PHP functions that allow double-dot range syntax上阅读更多信息。代码:(Demo)
trim()
if (ltrim($str, 'A..Za..z0..9.') !== '') { // all good }
4条答案
按热度按时间ss2ws0br1#
做这件事有两种方法。
告诉变量是否包含允许范围内的任何一个字符 not。这是通过使用一个否定字符类[^...]来实现的:
另一种方法是确保字符串 * 中的每个字符都在允许的范围内:
hsvhsicv2#
juzqafwq3#
这里的关键点是在[]组中使用“^”-它匹配除了括号内的字符之外的所有字符。
yws3nbqq4#
如果你不想使用正则表达式引擎,你可以用白名单中的字符来修剪字符串,然后检查字符串是否为空。
是的,
trim()
函数允许通过“yatta-yatta”点来表示字符范围。在Native PHP functions that allow double-dot range syntax上阅读更多信息。代码:(Demo)