Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/245.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果alpha或有空格,则php preg_匹配验证字符串_Php_Regex_Preg Match - Fatal编程技术网

如果alpha或有空格,则php preg_匹配验证字符串

如果alpha或有空格,则php preg_匹配验证字符串,php,regex,preg-match,Php,Regex,Preg Match,我需要验证一个字符串,该字符串只能有字母(小写或大写),并且可能有空格(可能没有太多)和破折号 if(preg_match('/^[-a-zA-Z0-9]+$/', $myString)) { //valid string } 您可以使用此正则表达式: /^[a-zA-Z -]+$/ if(preg_match('/^[a-zA-Z -]+$/', $myString)) { //valid string } 编辑如果输入必须以字母开头,则使用: /^[a-zA-Z][a-

我需要验证一个字符串,该字符串只能有字母(小写或大写),并且可能有空格(可能没有太多)和破折号

if(preg_match('/^[-a-zA-Z0-9]+$/', $myString)) {
    //valid string
}

您可以使用此正则表达式:

/^[a-zA-Z -]+$/

if(preg_match('/^[a-zA-Z -]+$/', $myString)) {
    //valid string
}
编辑如果输入必须以字母开头,则使用:

/^[a-zA-Z][a-zA-Z -]*$/

您可以将其用于只包含字母、空格和破折号,但至少包含一个字母的字符串

if(preg_match('/^(?=.*[a-z])[a-z -]+$/i', $myString)) {
  echo 'valid';
}
编辑: 如果输入必须以任何字母开头,则正则表达式可以简化为:

if(preg_match('/^[a-z][a-z -]*$/i', $myString)) {
  echo 'valid';
}

是否只有空格?它应该接受带空格或不带空格。因此
有效?可能无效。它应该至少有一个字母,并且只有破折号--“”?是的。字符类中的任何内容都允许使用这些字符,但您也可以不使用任何这些符号。因此,允许使用
abc
abc xyz
。它是否满足
的要求?输入必须以任何字母开头?@anubhava Oh。。。我没看到。有了这个要求,您的答案就可以了。是的,它还将允许
“-a”
“-x”
字符串。但我猜这个问题从一开始就没有很好的定义。