var list= new Array({MinLength:2,MaxLength:11,Expression:'^[0-9]/d$'})
Expression的值由后台输出
此JS语句 在调试中监控 list 对象 可发现其 Expression 值变成了 ^[0-9]d$
为解决问题,先考虑在后台输出 Expression 时先进行转换,然后在前台JS中取其Expression后再进行反转换。
具体:在后台用 Server.UrlEncode(string) 方法编码的字符,可以在客户端用unescape(decodeURI(ec)) 方法进行解码。
参考:JS对URL字符串进行编码/解码 原文链接:http://edu.codepub.com/2010/0401/21535.php
经测试可以通过,但是如果内容中包含单引号,此方法还是会导致错误
最后用了一个折中方法,在后台时将 单引号 斜杠 用指定的字符进行替换 然后在前台再反替换。此方法不灵活,日后有新的特殊字符还得重新增加新的替换字符.