繁体   English   中英

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

[英]regular expression: allow alphabets and a comma in between only

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

'/[a-zA-Z\s]\,[a-zA-Z\s]/'

第一个不完美,因为它允许您输入任意数量的逗号,

'/^[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."/>';
}

我怎么能只允许一个逗号?

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

谢谢。

你很接近。 尝试这个:

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

对于字符数要求:

/^[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
}

很近! 事实上,您要求的额外内容正是这个人需要的修复:

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

您已正确定义了字符类,但未指明应重复使用的频率。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM