打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
XML中配置正则表达式的写法

     在做WEB表单时,为了增加用户体验,表单验证通常是必不可少的。而这样的效果通常也是通过正则表达式实现。

如果在往前考虑一步,假如用户自己也能根据需要修改这些正则表达式,那就更加人性化了。

     在做管理系统时,除了数据库,我们用的最多的恐怕就是XML文件了,由于操作简单,我们喜欢用XML作为模版的

配置文件。这里主要强调在XML中配置正则表达式的写法,笔者确实走了一些弯路。

     因为XML(HTML)中,<,>,&有特殊的意义,(前两个字符用于链接签,&用于转义)不能直接使用。

   

     XML CDATA是什么?

     CDATA部件

     在CDATA内部的所有内容都会被解析器忽略。

     如果文本内容包含了很多的"<"字符和"&"字符——就像程序代码一样,那么最好把他们都放到CDATA部件中.

一个CDATA部件以"<![CDATA["标记开始,以"]]>"标记结束。
CDATA是通过解析器进行的文本,文本中的标签不被看作标记。

     于是,正确的写法

    笔者自己也写了一个简单的Demo.

 View

 1 <%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<dynamic>" %> 2  3 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 4 <html xmlns="http://www.w3.org/1999/xhtml"> 5 <head runat="server"> 6     <title>后台获取配置文件正则表达式</title> 7     <link href="<%=Url.Content("~/Scripts/ext-3.4.0/resources/css/ext-all.css") %>" rel="stylesheet" type="text/css" /> 8     <script src="<%=Url.Content("~/Scripts/ext-3.4.0/adapter/ext/ext-base.js") %>" type="text/javascript"></script> 9     <script src="<%=Url.Content("~/Scripts/ext-3.4.0/ext-all.js") %>" type="text/javascript"></script>10     <script src="<%=Url.Content("~/Scripts/Widget/CRegular.js") %>" type="text/javascript"></script>11 12     <script language="javascript" type="text/javascript">13 14         Ext.onReady(function () {15 16             Ext.QuickTips.init();17 18             Regular.GetFormPanel();19 20         });21 22     </script>23 </head>24 <body>25     <div id="form" style="margin: 100px;">26     </div>27 </body>28 </html>

Controller

/// <summary>        /// 获取配置文件中的正则表达式        /// </summary>        /// <returns>正则表达式</returns>        public JsonResult GetoRegular()        {            var strRegular = string.Empty;            //1.获取用例字段的XML            var oFormFields = XElement.Load(@"E:\201206112300ExMVC项目\Lucky\Lucky\Content\Regular.xml");            //从配置文件获取正则表达式            var oRegexQuery = from c in oFormFields.Elements("Regular")                              where c.Attribute("name").Value == "NameValidation"                              select c;            foreach (var oRegex in oRegexQuery)            {                strRegular = oRegex.Value;            }            return Json(strRegular, JsonRequestBehavior.AllowGet);        }

js

View Code

 

Regular.xml

<?xml version="1.0" encoding="utf-8" ?><!--1.解决XML配置文件中配置正则表达式的最优方案如果文本内容包含了很多的"<"字符和"&"字符——就像程序代码一样,那么最好把他们都放到CDATA部件中.一个CDATA部件以"<![CDATA["标记开始,以"]]>"标记结束。CDATA是通过解析器进行的文本,文本中的标签不被看作标记。--><Regulars>  <Regular name="NameValidation"><![CDATA[^[\u4E00-\u9FA5]+$]]></Regular></Regulars>
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
如何在XML中使用nbsp
xml的特点及语法规范
面向浏览器的动态 SVG
js中CDATA的意义
HTML与XHTML的区别 - HTML教程,XHTML教程
页里面 CDATA的作用说明
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服