我使用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
验证规则有效。
答案 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.'" -> '.preg_match('/(^[^r]|\s)/i', $str).'<br>';
}
结果:
"sad" -> 1
"rad" -> 0
"ra d" -> 1