Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.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
Php 正则表达式:仅允许字母表和逗号之间_Php_Regex_Preg Match - Fatal编程技术网

Php 正则表达式:仅允许字母表和逗号之间

Php 正则表达式:仅允许字母表和逗号之间,php,regex,preg-match,Php,Regex,Preg Match,我想让用户输入他们自己的城镇/城市和国家,所以我只想在城市和国家之间使用字母和逗号,下面是我的想法,但第二个表达式不起作用 '/[a-zA-Z\s]\,[a-zA-Z\s]/' 第一个是不完美的,bcos允许输入任意多的逗号 '/^[a-zA-Z\s\,]+$/' if(!preg_match('/^[a-zA-Z\s\,]+$/', $mem_town_city_country) || !preg_match('/[a-zA-Z\s]\,[a-zA-Z\s]/', $mem_town_ci

我想让用户输入他们自己的城镇/城市和国家,所以我只想在城市和国家之间使用字母和逗号,下面是我的想法,但第二个表达式不起作用

'/[a-zA-Z\s]\,[a-zA-Z\s]/'
第一个是不完美的,bcos允许输入任意多的逗号

'/^[a-zA-Z\s\,]+$/'

if(!preg_match('/^[a-zA-Z\s\,]+$/', $mem_town_city_country) || !preg_match('/[a-zA-Z\s]\,[a-zA-Z\s]/', $mem_town_city_country))
{
   $error = true;
   echo '<error elementid="mem_town_city_country" message="TOWN/CITY, COUNTRY - sorry, they appear to be incorrect."/>';
}
'/^[a-zA-Z\s\,]+$/'
如果(!preg_match('/^[a-zA-Z\s\,]+$/,$mem_town\u city\u country);!preg_match('/[a-zA-Z\s]\,[a-zA-Z\s]/,$mem_town\u city\u country))
{
$error=true;
回声';
}
我怎么能只允许一个逗号

此外,不确定这是否太多-我是否可以检查城市的字符输入,例如至少3个,国家至少4个


谢谢

你很接近。试试这个:

/^[a-zA-Z\s]+\,[a-zA-Z\s]+$/
对于字符数要求:

/^[a-zA-Z\s]{3,}\,[a-zA-Z\s]{4,}$/

你很接近。试试这个:

/^[a-zA-Z\s]+\,[a-zA-Z\s]+$/
对于字符数要求:

/^[a-zA-Z\s]{3,}\,[a-zA-Z\s]{4,}$/

太近了!事实上,你要求的额外费用正是这个人需要的修复:

'/[a-zA-Z\s]{3,}\,[a-zA-Z\s]{4,}/'

您已经正确定义了角色类,但没有指出应该多久定义一次。

太接近了!事实上,你要求的额外费用正是这个人需要的修复:

'/[a-zA-Z\s]{3,}\,[a-zA-Z\s]{4,}/'

您已正确定义了字符类,但未指明其频率。

仅允许字母,至少需要1个字母,还允许逗号:

var regex = new RegExp('^[a-zA-Z]{1,}');

if (regex.test(query)) {    
    // do whatever you want
}

仅允许使用字母,至少需要1个字母,还允许使用逗号:

var regex = new RegExp('^[a-zA-Z]{1,}');

if (regex.test(query)) {    
    // do whatever you want
}

通过添加{3,}而不是plus,您表示您希望至少有3个字符(您对城市和国家的要求)也可以使用a-zA-Z来代替a-zA-Z\w@Michael. \w将包括下划线和数字。为什么“\”,你不需要避开“科罗拉多州卡尼翁市”之类的逗号呢?几乎每次你看到有人用大写和/或小写列举26个字母时,就表明他们做错了什么。要匹配任何字母,必须使用
\p{L}
。欢迎来到新千年。通过添加{3,}而不是加号,您可以说您希望至少有3个字符(您对城市和国家的要求)而不是您可以使用的a-zA-Z\w@Michael. \w将包括下划线和数字。为什么“\”,你不需要避开“科罗拉多州卡尼翁市”之类的逗号呢?几乎每次你看到有人用大写和/或小写列举26个字母时,就表明他们做错了什么。要匹配任何字母,必须使用
\p{L}
。欢迎来到新的千年。再一次,
[a-zA-Z]
是写
(?=\p{ASCII})\pL
的坏方法。再一次,
[a-zA-Z]
是写
(?=\p{ASCII})\pL
的坏方法。这是如何回答这个问题的?请再详细说明一下。这是如何回答这个问题的?请再详细一点。