邮箱正则表达式中@符号的冲突问题

正则表达式,它又被称为规则表达式。在代码中常简写为regex、regexp或RE。正则通常被用来检索、替换符合某个规则的文本数据。我用正则一般都是用于检测或限制用户输入的数据,判断其是否符合相应的数据格式,比如手机号的格式:一、是要满十一位数,且必须为1开头,二、第二位数只能为3-9的数字。运用正则我们可以在输入手机号的文本框中先加限制,限制只能输入0-9的数字,若输入0-9数字以外的字符,则会被正则进行撤回。限制加上以后,再到格式的正则判断:

if (!(/^1[3456789]\d{9}$/.test(PhoneNumber))) 
{//PhoneNumber 用户输入的手机号
$("#EmployeePhone").addClass("n-invalid");
$("#icon4").prop("class", "n_icon");
$("#icon4").prop("style","display:inline-block;transform:translate(0px,4px)");           $("#tip4").removeClass("text-success").addClass("text-danger").html("格式不正确");
}

这样,就不怕用户输入错误的手机号信息了。以上便是我对正则表达式的理解及使用,但近期在使用正则判断邮箱的数据格式时出现了些问题。首先来看看邮箱的格式判断正则,变量reg后面跟着的那一大串字符便是邮箱的正则格式检测:

var Mail = $("#MailBox").val();
var reg = /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/;
 if (!reg.test(Mail)) {
                    $("#MailBox").addClass("n-invalid");
                    $("#icon5").prop("class", "n_icon");
                    $("#icon5").prop("style", "display:inline-block; transform:translate(0px,4px)");             $("#tip5").removeClass("text-success").addClass("text-danger").html("格式不正确");
}

在这串正则表达式中有着一个自带黄色“圣光”的@符号,是不是觉得很亮眼? 它便是我们要解决的问题。邮箱号都是带有一个@符号的,所以在该表达式中有@符号出现我觉得并不奇怪,但正是因为这个@符号,导致出现了祸及整个页面的报错异常,系统提示的是分析器错误,如下图:
在这里插入图片描述错误刚出现时我是挺懵的,毕竟当时已经确认了表达式本身是没有写错的,而报错的原因可能是Mvc中对@的定义和邮箱正则内的@之间起了冲突,因为是在MVC中,所以@符号被认为是一个关键字而不是一种普通的字符串数据,以至于@字符“被迫”披上了黄色战服。那么,如何解决这个问题呢,其实解决它的方法有很多种:一、直接将该邮箱正则表达式封装在一个方法中,并放到单独的js文件里面,接着再在页面处调用,这样便不怕被Mvc识别成关键字了。二、将邮箱的@符号从关键字转换成普通的字符串:
@{@Html.Raw("@");}

通过以上这两种方法,便能成功的解决邮箱@符号的冲突问题了,希望可以帮助到大家:
var reg = //解决@符号冲突/^\w+((-\w+)|(.\w+))@{@Html.Raw("@");}[A-Za-z0-9]+((.|-)[A-Za-z0-9]+).[A-Za-z0-9]+$/;
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值