ASP.NET MVC 视图中@符号和正则表达式中的@符号冲突的解决方法

2019年4月4日16:02:13 12 795
摘要

偶遇错误“ASP.NET MVC 视图中@符号和正则表达式中的@符号冲突“,分享一下解决方案。

今天做项目的时候遇到一个问题,关于MVC 视图中使用正则表达式的@冲突,找了半天都没找到,幸亏功夫不负有心人,还是找到解决方法。

起因

我在视图页面中写js判断用户输入邮箱是否符合,使用正则表达式。按照之前的常识,想输出@就需要写两个@,本想这应该没毛病的。

  1. <input type="email" class="form-control" name="ComMail" placeholder="请输入联系业务邮箱" required onblur="var reg = /^\w+([-+.]\w+)*@@\w+([-.]\w+)*\.\w+([-.]\w+)*$/; var regExp = new RegExp(reg); if (!regExp.test(value)) { value = '';swal('请输入有效的邮箱账号!')};" onkeyup="value=value.replace(/[^\d\.]/g,'')" />

谁知,竟然报错了。但是从报错信息来看,的确是输出了一个@。

ASP.NET MVC 视图中@符号和正则表达式中的@符号冲突的解决方法

解决

经过长时间的查找资料,终于找到解决方法了。

  1. @{@Html.Raw("@");}

如果需要输出@,发生错误,上面代码就能完美解决错误。即:

  1. <input type="email" class="form-control" name="ComMail" placeholder="请输入联系业务邮箱" required onblur="var reg = /^\w+([-+.]\w+)*@{@Html.Raw("@");}\w+([-.]\w+)*\.\w+([-.]\w+)*$/; var regExp = new RegExp(reg); if (!regExp.test(value)) { value = '';swal('请输入有效的邮箱账号!')};" onkeyup="value=value.replace(/[^\d\.]/g,'')" />

 

weinxin
微信公众号
博客微信公众号,欢迎关注。

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:12   其中:访客  6   博主  6

    • avatar 小王先森 4

      还没接触到.net

      • avatar 90人网络 1

        .net很神奇

          • avatar 萧瑟 博主

            @90人网络 .net的确很好玩。

          • avatar 西枫里博客 4

            C#的资源还是蛮少的吧?

              • avatar 萧瑟 博主

                @西枫里博客 C#还算挺多的。不过都很旧了。

              • avatar 红嘴鸭 2

                感谢大佬的分享

                  • avatar 萧瑟 博主

                    @红嘴鸭 只是一个小菜鸟,不算大佬 :mrgreen:

                  • avatar 空包网 0

                    感谢分享

                      • avatar 萧瑟 博主

                        @空包网 客气了,一起学习呦。

                      • avatar 子午物联网 2

                        论写正则,我是不会,智能用别人写好的

                          • avatar 萧瑟 博主

                            @子午物联网 其实正则也还好,不是特别难。