繁体   English   中英

正则表达式只允许字母、数字、空格、逗号、句点?

[英]Regex for only allowing letters, numbers, space, commas, periods?

我对正则表达式一无所知,因为它对我来说很复杂。 我正在使用一个基于正则表达式限制用户输入的程序。 我目前正在使用一个只会让用户输入的正则表达式:

A-Z and a-z
0-9
.
,
!
?

所以基本上是典型段落或网络文章中的任何内容。

程序声明“输入一个正则表达式,输入的文本必须匹配(使用 preg_match 评估,使用 s 和 i 标志)才能使其有效。”

我已经尝试过这个正则表达式但没有成功,我目前正在寻找其他人来尝试。

 '/^[a-zA-Z0-9,.!? ]*$/'

它应该允许一个简单的句子,例如

“嗨,我叫约翰!我喜欢吃苹果、橙子和葡萄。你愿意和我一起吃吗?

^[\\.a-zA-Z0-9,!? ]*$

正则表达式是什么,它可以工作,请参阅示例网站来测试正则表达式。

你也可以使用 '/^[\\w .,!?]+$/'

字母数字 \\w 元字符等效于字符范围 [A-Za-z0-9_]

例如:

if ($_SERVER["REQUEST_METHOD"] == "POST") {
  if (empty($_POST["message"])) {
    $messageErr = "Message cant be empty";
  } elseif (preg_match('/^[\w .,!?()]+$/', $message) === false){
    $messageErr = "Only aA-zZ09.,!?_ are allowed";
  } else {
    $message = data($_POST["message"]);
  }
}
function data($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
# Do something with $message

你甚至不需要 az 或 0-9。 "[\\w,.!?]"应该可以工作。

暂无
暂无

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

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