在表单提交后从textarea中删除多个空格

时间:2016-12-12 12:04:38

标签: php wordpress contact-form-7

我在contact form 7网站上使用Wordpress向我的用户显示查询表单。

我最近修改了表单并添加了textarea。但是我遇到的问题是当用户按住前端的“enter”键时删除用户添加的空白。一些用户将添加数百行空白,这是不可取的。

理想情况下,当他们提交表单时,我想用一个空格替换所有这些空格。所以我尝试了下面的内容:

add_filter('wpcf7_validate_textarea*', 'custom_textarea_validation_filter', 10, 2);
function custom_textarea_validation_filter($result, $tag){
    $tag = new WPCF7_Shortcode($tag);
    $value = $_POST[$tag->name];
    if("your-enquiry" == $tag->name){
        htmlentities($value);
        trim(preg_replace('/\s\s+/', ' ', $value));
    }
    return $result;
}

不幸的是它不起作用......我不是那么担心阻止他们在前端做这件事,因为有些用户可能想要分开他们的段落等...但是在服务器端我想删除所有这些空白并用一个空行代替

有人有什么建议吗?

2 个答案:

答案 0 :(得分:1)

您没有为$ result分配任何值,为什么要返回它?你的正则表达式也是错误的尝试:

add_filter('wpcf7_validate_textarea*', 'custom_textarea_validation_filter', 10, 2);
function custom_textarea_validation_filter($result, $tag){
    $tag = new WPCF7_Shortcode($tag);
    $value = $_POST[$tag->name];
    if("your-enquiry" == $tag->name){
        $value  = htmlentities($value);
        $result = trim(preg_replace('/\s{2,}/', ' ', $value));
    }
    return $result;
}

答案 1 :(得分:0)

试试这个:

add_filter('wpcf7_validate_textarea*', 'custom_textarea_validation_filter', 10, 2);
function custom_textarea_validation_filter($result, $tag){
    $tag = new WPCF7_Shortcode($tag);
    $value = $_POST[$tag->name];
    if("your-enquiry" == $tag->name){
        $value = htmlentities($value);
        $result = trim(preg_replace('/\r|\n/', ' ', $value));
    }
    return $result;
}