检测空白用正则表达式
问题描述:
我使用以下正则表达式来检查名称字段中的无效字符...检测空白用正则表达式
if (!preg_match("/^[a-zA-Z ]*$/",$mystring))
有没有一种方法,如果字符串使用正则表达式为空白也检测?或者我更喜欢使用PHP?
答
你可以做一个简单的检查没有一个正则表达式:
if($string == "") //do something
或
if(strlen($string) == 0) //do something
或
if(strlen(trim($string)) == 0) //do something
答
或者,
<?php
$str = "\r\n\t\0 ";
if (trim($str) == "") {
echo "This string is blank";
}
修剪任何空白字符(包括一个或多个空格)的字符串,然后将结果与空字符串进行比较将检测到空白字符串。这里的优点是你只需要使用一个功能,即修剪。
当然可以使用trim()和strlen()来实现相同的结果,但这需要两个函数而不是一个函数。
使用的strlen(),而不修整输入$ STR可能导致接受“空白”行,如下所示:
<?php
$content = 'Content: ';
$str = " \r\n\t\0 ";
if (strlen($str) == 0) {
echo 'blank line',"\n";
}
else
{
$content .= $str;
}
echo $content;
通过在这种情况下不修整的任何空白字符的字符串的字符串长度是六个,但是一个明显空白的$ str会被附加到$ content。
http://*.com/questions/1833999/regular-expression-to-match-an-empty-or-all-whitespace-string - 一般情况下,尽可能避免正则表达式。它运行缓慢,而且更重要的是,造成阅读不清晰。你有没有考虑strpos作为你的其他正则表达式的替代? – 2014-12-05 00:23:15