【问题标题】:allow only space, letters and 1 dot in phpphp中只允许空格、字母和1个点
【发布时间】:2017-05-10 08:02:44
【问题描述】:

堆栈溢出美好的一天。

我的代码只允许使用字母,但我只想允许空格、字母和 1 个点。

if(!preg_match('/[^a-zA-Z]/', $fullname)) {

}

提前致谢

编辑: 我想允许这个字符串

$fullname = "马克·E·扎克伯格"; 要么 $fullname = "扎克伯格马克 E.";

【问题讨论】:

标签: php regex preg-match


【解决方案1】:

您可以像这样使用正则表达式:

'/[\w. ]*/'

如果你想在字符串的开头只允许字母,你可以像这样使用正则表达式:

'/^[\w]+[\w. ]*/'

编辑:

如果您只想允许 1 个点,您可以使用下一个正则表达式:

'/^[a-zA-Z ]*\.[a-zA-Z ]*$/'

如果你想在字符串的开头只允许字母,你可以像这样使用正则表达式:

'/^[a-zA-Z ]+\.[a-zA-Z ]*$/'

【讨论】:

  • 我只想像标题所说的那样允许字母、空格和点。
  • 所以,使用第一个正则表达式。
  • @MarverickM。你的标题是“点s
  • \w 不仅仅是字母。
  • 问题是如果我有这个怎么办?扎克伯格马克 E.?
【解决方案2】:

这个正则表达式应该可以工作/^[a-zA-Z ]*\.[a-zA-Z ]*$/,注意有一个空格

【讨论】:

  • 它不起作用。我有这个/[^a-zA-Z\s-]/,但我不知道如何在此处添加点
  • \. 将匹配点。举例说明你匹配的字符串会更好
猜你喜欢
  • 1970-01-01
  • 2013-11-04
  • 1970-01-01
  • 1970-01-01
  • 2016-09-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多