Php 检查变量是否只有一个字母或特定字符串
我有我的变量Php 检查变量是否只有一个字母或特定字符串,php,regex,Php,Regex,我有我的变量$\u GET['artist'],我想检查: 如果该变量只有一个字母,并且该字母是从a到z(区分大小写,因此a无效) 或者如果该变量是all或other 如何在PHP上使用regex和preg_match()检查它 if (preg_match('/^([a-z]|all|other)$/', $_GET['artist']) === 1) { // True } 假设all和other也应区分大小写 function check($str){ $c=strlen
$\u GET['artist']
,我想检查:
一个
字母,并且该字母是从a
到z
(区分大小写,因此a
无效)李>
all
或other
regex
和preg_match()
检查它
if (preg_match('/^([a-z]|all|other)$/', $_GET['artist']) === 1) {
// True
}
假设all
和other
也应区分大小写
function check($str){
$c=strlen($str)==1 ? ord($str) : 0; // get the ascii code if it is a single character
return ($c>=ord('a') && $c<=ord('z')) // it is a single character between a and z
|| strpos($str,'all')!==false // it contains "all"
|| strpos($str,'other')!==false; // it contains "other"
}
check($_GET['artist']);
假设all
和other
也应区分大小写
function check($str){
$c=strlen($str)==1 ? ord($str) : 0; // get the ascii code if it is a single character
return ($c>=ord('a') && $c<=ord('z')) // it is a single character between a and z
|| strpos($str,'all')!==false // it contains "all"
|| strpos($str,'other')!==false; // it contains "other"
}
check($_GET['artist']);
说到速度,你可以看出谁是最好的。虽然我个人会选择这个,但正则表达式肯定是有好处的。事实已经准备好了,我只是不能为这个毫无意义的论点而烦恼
说到速度,你可以看出谁是最好的。虽然我个人会选择这个,但正则表达式肯定是有好处的。事实已经准备好了,我只是不能为这个毫无意义的论点而烦恼。但更令人费解。哈哈,但他特别要求一个正则表达式:)@Gumbo-你有评论的额外优势,正则表达式没有这样的东西。而且,我看不出美元符号、背面斜杠等等,甚至更容易理解@兹纳库斯-你认为我没有注意到吗?如果他自己写不出来,显然他不适合使用正则表达式。@Christian Sciberas:如果你知道正则表达式,那么Znarkus的解比你的解要简洁得多。(更不用说你的不正确。)@christian:到底是什么阻止你使用正则表达式的注释?但更令人费解的是。哈哈,但他特别要求使用正则表达式:)@Gumbo-你有注释的额外优势,正则表达式没有这样的功能。而且,我看不出美元符号、背面斜杠等等,甚至更容易理解@兹纳库斯-你认为我没有注意到吗?如果他自己写不出来,显然他不适合使用正则表达式。@Christian Sciberas:如果你知道正则表达式,那么Znarkus的解比你的解要简洁得多。(更不用说你的不正确。)@christian:到底是什么阻止你对正则表达式使用注释?嗯……这就是问题所在!如果我写了“Othere”,它也会起作用……我不想要这个:)如果我写了例如“hh”一样。。。我需要特定的值。。。另外,我试过没有===1是的,我现在看到的那个。。。但是如果没有===1,只需使用(preg_match('/^([a-z]| all | other)$/',$_GET['artist'])来评估“true”,就可以看到一个答案,它不会复制PHP已经拥有的功能,而是使用它。@kwichz抱歉,我不明白
var_dump
ofpreg_match('/^([a-z]| all | other)$/','other')
显示它返回1
,对其他的0
@Ben执行相同操作-谈论“无能”。嗯……这就是问题所在!如果我写了“Othere”,它也会起作用……我不想要这个:)如果我写了例如“hh”一样。。。我需要特定的值。。。另外,我试过没有===1是的,我现在看到的那个。。。但是如果没有===1,只需使用(preg_match('/^([a-z]| all | other)$/',$_GET['artist'])来评估“true”,就可以看到一个答案,它不会复制PHP已经拥有的功能,而是使用它。@kwichz抱歉,我不明白var|u dump
ofpreg_match('/^([a-z]| all | other)$/','other')
显示它返回1
,对其他
返回0
@Ben-谈论“无线索”。