php:验证字段是否以某个字符开头

时间:2013-12-18 09:53:17

标签: php html wordpress forms validation

我使用wordpress上的Contact Form 7插件收集字段中输入的数据,我现在正在寻找使用这个简洁的扩展程序设置一些验证规则:http://code-tricks.com/contact-form-7-custom-validation-in-wordpress/
我之后只是在文本字段中只允许一个单词(即没有空格),这个单词必须以字母“r' r”开头。 (不区分大小写)。
我写了无空格规则如下:

//whitespace
if($name == 'WhiteSpace') {
    $WhiteSpace = $_POST['WhiteSpace'];

    if($WhiteSpace != '') {
        if (!preg_match('/\s/',$WhiteSpace)){
            $result['valid'] = true;
        } else {
            $result['valid'] = false;
            $result['reason'][$name] = 'Invalid Entry.';
        }
    }
}

是否有可能将第二条规则纳入其中?所以没有空格,这个词必须以字母“r'”开头。任何建议将不胜感激!


编辑: 似乎core1024回答确实有效,但只有其中一个:

    //FirstField
    if($name == 'FirstField') {
        $FirstField = $_POST['FirstField'];

        if($FirstField != '') {
            if (!preg_match("/(^[^a]|\s)/i",$FirstField)){
                $result['valid'] = true;
            } else {
                $result['valid'] = false;
                $result['reason'][$name] = 'Invalid Entry.';
            }
        }
    }


//__________________________________________________________________________________________________

    //SecondField
    if($name == 'SecondField') {
        $SecondField = $_POST['SecondField'];

        if($SecondField != '') {
            if (!preg_match("/(^[^r]|\s)/i", $SecondField)) {
                $result['valid'] = true;
            } else {
                $result['valid'] = false;
                $result['reason'][$name] = 'Invalid Entry.';
            }
        }
    }

我想要使用此代码两次,一次验证第一个字符是a在一个字段上第二个实例,第一个字符是r在另一个字段上。但似乎只有SecondField验证规则有效。

2 个答案:

答案 0 :(得分:2)

尝试使用:

preg_match('/^r[^\s]*$/i',$WhiteSpace)

而不是:

!preg_match('/\s/',$WhiteSpace)

答案 1 :(得分:1)

你需要这个:

if (!preg_match("/(^[^r]|\s)/i", $WhiteSpace)) {

它匹配任何不以r / R开头或包含空格的字符串。 这是一个测试:

$test = array(
    'sad',
    'rad',
    'ra d'
);

foreach($test as $str) {
    echo '"'.$str.'" -&gt; '.preg_match('/(^[^r]|\s)/i', $str).'<br>';
}   

结果:

"sad" -> 1
"rad" -> 0
"ra d" -> 1