简单的问题,但我解决这个游戏很头疼.示例正则表达式.
[a-zA-Z0-9\s]
[whitespace]Stack[whitespace]Overflow - not allow
Stack[whitespace]Overflow - allow
Stack[whitespace]Overflow[whitespace] - not allow
Run Code Online (Sandbox Code Playgroud)
让我知道
function regex($str)
{
$check = preg_replace('/^[a-zA-Z0-9][a-zA-Z0-9\s]+[a-zA-Z0-9]$|^[a-zA-Z0-9]*$/', "", $str);
if (empty($check)) {
return true;
} else {
return false;
}
}
$str = 'Stack Overflow ';
$validator = regex($str);
if ($validator) {
echo "OK » " .$str;
} else {
echo "ERROR » " . $str;
}
Run Code Online (Sandbox Code Playgroud)
尝试:
/^\S.*\S$|^\S$/
Run Code Online (Sandbox Code Playgroud)
如果你只想要字母,数字和下划线,还有两个字,不能少,不再:
/^\w+\s+\w+$/
Run Code Online (Sandbox Code Playgroud)
没有下划线,
/^\p{Alnum}+\s+\p{Alnum}+$/
Run Code Online (Sandbox Code Playgroud)
虽然,在一些正则表达式样式(特别是PHP,我现在看到的是目标),你使用这个:
/^[[:alnum:]]+\s+[[:alnum:]]+$/
Run Code Online (Sandbox Code Playgroud)
如果可以接受任何数量的此类单词和数字:
/^\w[\w\s]*\w$|^\w$/
Run Code Online (Sandbox Code Playgroud)