如何在导入数据时使用正则判断数据

我们在做项目的时候总会遇到数据导入的问题,那么当我们想将数据导入数据库的时候判断一些字段的值的格式是否符合常规,那么该怎么做呢?
例图:我想将这条客户信息导入到数据库,但是单位电话的格式不小心填错了,为了防止数据的不规范性,所以要求在导入数据库之前就判断单位电话的格式是否正确,那么该怎么写呢?
在这里插入图片描述
效果图:
在这里插入图片描述
其实写法很简单,就是在将数据导入到数据库的时候就写正则来判断一下数据(在控制器中实现这种效果),步骤如下:
1、首先是要获取到上传表格里面的数据;
2、通过foreach遍历循环表格里面的数据;
3、获取表格里面的单位电话进行正则的判断;
4、如果不符合正则表达式则直接跳出给提示,符合就进行保存数据的下一步。
代码:

//记录条数
int intnum = 0;
//声明一张新的表格来存放表格的数据
List<clientVo> listClient = new List<clientVo>();
//判断保存到session里面的表格数据是否为空,不为空的话就用新表来获取表格的数据
if (Session["ImportExcel"] != null){
      listClient = Session["ImportExcel"] as List<clientVo>;
}
//遍历虚循环数据进行判断 
foreach (var item in listClient)
{
      intnum++;
      //单位电话的正则
      string Phone = @"(13[0-9]|14[579]|15[0-3,5-9]|16[6]|17[0135678]|18[0-9]|19[89])\d{8}";
      //判断单位电话是否符号正则表达式,并且单位电话不为空时判断
      if (Regex.IsMatch(item.ClientMonadPhone, Phone) == false && item.ClientMonadPhone != "")
      {
       //提示第几条数据的单位电话的格式不规范
       returnJson.Text = "导入的第" + intnum + "条数据的单位电话格式不正确,请更改后重新导入";
       return Json(returnJson, JsonRequestBehavior.AllowGet);
      } 
}

总结:
在Jquery中的判断正则的写法和在控制器的正则的写法不一样,但是效果是一样的。
在jQuery的写法:

//获取值
var clientMonadPhone = $("#formUpdateClient [name='ClientMonadPhone']").val(); 
//验证单位电话
var ClientMonadPhone = /^(13[0-9]|14[579]|15[0-3,5-9]|16[6]|17[0135678]|18[0-9]|19[89])\d{8}$/;
if (!ClientMonadPhone.test(clientMonadPhone)) {
      layer.alert("单位电话格式有误,请输入正确的联系电话!", { icon: 0, title: "提示", skin: "layui-layer-molv" });
      return;
}

在控制器的写法:

string Phone = @"(13[0-9]|14[579]|15[0-3,5-9]|16[6]|17[0135678]|18[0-9]|19[89])\d{8}";
if (Regex.IsMatch(item.ClientMonadPhone, Phone) == false && item.ClientMonadPhone != ""){
returnJson.Text = "导入的第" + intnum + "条数据的单位电话格式不正确,请更改后重新导入";
return Json(returnJson, JsonRequestBehavior.AllowGet);
}

这样就可以把它们区分开来。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值