如何在织梦自定义表单中设置手机号码和邮箱的验证规则及必填项?

在织梦自定义表单中,手机号码和邮箱的验证规则可以通过正则表达式进行设置。可以将它们设置为必填项,以确保用户提交的信息是完整的。

织梦(DedeCMS)是一款开源的内容管理系统,广泛应用于企业网站和博客的建设,自定义表单是其一个重要功能,通过该功能用户可以创建各种类型的表单以满足不同需求,默认情况下,织梦的自定义表单没有提供必填项验证以及手机号码和邮箱格式验证的功能,为了提高表单提交的准确性和用户体验,本文将详细介绍如何在织梦自定义表单中设置必填项及验证规则。

如何在织梦自定义表单中设置手机号码和邮箱的验证规则及必填项?

一、设置必填项

1、修改程序源文件:在plus文件夹下找到diy.php文件,编辑第40行左右的代码,增加以下内容:

   //增加必填字段判断
   if($required!=''){
       if(preg_match('/,/', $required)){
           $requireds = explode(',',$required);
           foreach($requireds as $field){
               if($$field==''){
                   showMsg('带*号的为必填内容,请正确填写', '1');
                   exit();
               }
           }
       }else{
           if($required==''){
               showMsg('带*号的为必填内容,请正确填写', '1');
               exit();
           }
       }
   }

这段代码的作用是检查表单中的必填项是否已填写,如果未填写则提示用户并阻止表单提交。

2、在表单模板中添加隐藏字段:在表单的HTML代码中添加一个隐藏字段,用于指定哪些字段是必填项。

   <input type="hidden" name="required" value="name,email" />

这里的nameemail表示需要设置为必填项的字段名称。

二、手机号码验证规则

手机号码验证主要是确保用户输入的手机号码符合标准的格式,可以在diy.php文件中添加以下代码:

//判断手机号码是否正确
if (!preg_match("/^1[3|5][09]{9}$/", $telphone)) {
    showMsg('手机号码不对,请正确填写', '1');
    exit();
}

这段代码使用了正则表达式来匹配中国大陆的手机号码格式(以1开头,第二位为3或5,后面跟随9位数字),如果用户输入的手机号码不符合该格式,则会显示错误信息并阻止表单提交。

三、邮箱验证规则

邮箱验证同样是为了确保用户输入的邮箱地址有效,可以在diy.php文件中添加以下代码:

如何在织梦自定义表单中设置手机号码和邮箱的验证规则及必填项?

//验证邮箱
if (!preg_match("/^[_\.09az]+@([09az][09az]+\.)+[az]{2,3}$/i", $email)) {
    showMsg('请您填写正确的EMail 地址!', '1');
    exit();
}

这段代码使用了正则表达式来匹配常见的邮箱格式,如果用户输入的邮箱地址不符合该格式,则会显示错误信息并阻止表单提交。

四、完整示例

以下是一个完整的示例,展示了如何在织梦自定义表单中同时实现必填项设置、手机号码验证和邮箱验证:

1、修改diy.php文件

   //增加必填字段判断
   if($required!=''){
       if(preg_match('/,/', $required)){
           $requireds = explode(',',$required);
           foreach($requireds as $field){
               if($$field==''){
                   showMsg('带*号的为必填内容,请正确填写', '1');
                   exit();
               }
           }
       }else{
           if($required==''){
               showMsg('带*号的为必填内容,请正确填写', '1');
               exit();
           }
       }
   }
   //判断手机号码是否正确
   if (!preg_match("/^1[3|5][09]{9}$/", $telphone)) {
       showMsg('手机号码不对,请正确填写', '1');
       exit();
   }
   //验证邮箱
   if (!preg_match("/^[_\.09az]+@([09az][09az]+\.)+[az]{2,3}$/i", $email)) {
       showMsg('请您填写正确的EMail 地址!', '1');
       exit();
   }

2、在表单模板中添加隐藏字段

   <input type="hidden" name="required" value="name,email" />

通过以上步骤,您可以有效地提高织梦自定义表单的数据准确性和用户体验,希望本文对您有所帮助!

为了更好地理解上述内容,这里提供了两个常见问题及其解答:

Q1: 如果我希望在织梦自定义表单中添加更多的必填项,应该如何操作?

如何在织梦自定义表单中设置手机号码和邮箱的验证规则及必填项?

A1: 要在织梦自定义表单中添加更多的必填项,首先需要在表单模板的隐藏字段中增加相应的字段名称,如果您希望将“电话”也设为必填项,可以将隐藏字段的值修改为value="name,email,phone",然后在diy.php文件中的必填项判断部分添加相应的逻辑,确保新添加的字段也被检查,具体代码如下:

//增加必填字段判断
if($required!=''){
    if(preg_match('/,/', $required)){
        $requireds = explode(',',$required);
        foreach($requireds as $field){
            if($$field==''){
                showMsg('带*号的为必填内容,请正确填写', '1');
                exit();
            }
        }
    }else{
        if($required==''){
            showMsg('带*号的为必填内容,请正确填写', '1');
            exit();
        }
    }
}

这样,当用户提交表单时,系统会自动检查所有指定的必填项是否已填写。

Q2: 如何更改手机号码和邮箱的验证规则?

A2: 更改手机号码和邮箱的验证规则主要涉及到修改正则表达式,对于手机号码验证,如果您希望支持更多的号码段,可以调整正则表达式中的模式,如果您想支持以“17”开头的手机号码,可以将正则表达式改为:

if (!preg_match("/^1[3|5|7][09]{9}$/", $telphone)) {
    showMsg('手机号码不对,请正确填写', '1');
    exit();
}

对于邮箱验证,如果您有特定的邮箱格式要求,也可以相应地调整正则表达式,如果您只想允许使用某些特定域名的邮箱,可以修改正则表达式中的域名部分,需要注意的是,复杂的正则表达式可能会影响性能,因此应根据实际情况进行优化。