【发布时间】:2023-03-25 20:24:01
【问题描述】:
我怎样才能只在单词中允许单个连字符和单个空格,而不是在单词的开头或结尾?
if(!preg_match('/^[a-zA-Z0-9\-\s]+$/', $pg_tag))
{
$error = true;
echo '<error elementid="pg_tag" message="TAGS - only alphanumbers and hyphens are allowed."/>';
}
我不想接受下面的这些输入
---stack---over---flow---
stack-over-flow- stack-over-flow2
stack over flow
但只有这些是可以接受的,
stack-over-flow stack-over-flow2 stack-over-flow3
stack over flow
stacoverflow
谢谢。
【问题讨论】:
-
规范化输入可能会更容易,即将所有连续的空格和破折号减少为一个并将它们从开头和结尾删除。
-
@Felix Kling:感谢这个想法!如何规范化输入?
标签: php regex preg-match space