【问题标题】:browser gets hang/freezes while entering special characters浏览器在输入特殊字符时挂起/冻结
【发布时间】:2021-08-04 09:28:43
【问题描述】:

我允许在文本框中输入英语和其他语言的 unicode 并限制特殊字符,但是当我输入特殊字符时,浏览器会冻结且无响应,低于用于英语和卡纳达语的组合正则表达式。

 <asp:RegularExpressionValidator ID="regExpRemarks" runat="server" CssClass="valdn-color" ControlToValidate="txtRemarks" ErrorMessage="Only Alphabets, Numbers and Special Characters like - . / , : () are allowed in Remarks"
                                    SetFocusOnError="true" Display="Dynamic" ValidationGroup="KSEI_LP"  ValidationExpression="^([0-9a-zA-Z-,./(): \r\n\u200D\u0C80-\u0CFF]+)+$"></asp:RegularExpressionValidator>

这种模式是否正确

ValidationExpression="^([0-9a-zA-Z-,./(): \r\n\u200D\u0C80-\u0CFF]+)+$" 

我什至尝试使用 java 脚本阻止特殊字符,但它不起作用

 <script type="text/javascript">
       function checkSpcialChar(e) {
           alert();
           var k = e.keyCode;
           if ((k == 39) || (k >= 219 && k <= 222) || (k == 187) || (k == 189)) {
               return false;
           }
           else {
               return true;
           }
   </script>   

如何验证特殊字符并允许提到的字符,帮帮我!

【问题讨论】:

  • +)+ 似乎不稳定。删除捕获组,因为它会导致不必要的开销。除此之外,regex101.com/r/7ZYsVF/1 并没有冻结我的浏览器。你使用的是什么浏览器?你的电脑是土豆吗?
  • 看来不是土豆
  • 检查您的网络浏览器控制台是否有错误。我敢打赌,除了正则表达式之外,还有很多事情要做,尤其是因为它是 ASP
  • ValidationExpression="^[a-zA-Z0-9,./(): \r\n\u200D\u0C80-\u0CFF-]+$" 工作吗?

标签: asp.net regex


【解决方案1】:

过滤坏字符可能更有意义。坏的很可能是那些不符合 UTF-8 的。我假设这是您正在使用的 unicode 编码,因为其他编码现在很少见。 UTF-8 字符编码如下,其中 x 代表 unicode 代码点的位:

0xxxxxxx 110xxxxxx10xxxxxx 1110xxxx 10xxxxxx 10xxxxxx 1110xxxx 10xxxxxx 10xxxxxx 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

请注意,以 10 开头的字符是非法的。其中一些是在流行的 ISO-8859-1 标准中定义的,但不是在 0x80 - 0x9f 范围内的那些。可悲的是,微软在该范围内实现了一些字形。左边的双引号(又名“[the evil] smart quote”),0x93 是最令人震惊的。我怀疑原因是它映射到 XOFF 字符(0x13,又名“控制 S”),MSb 设置为 1,使其为 0x93。我在一个系统(基于 VxWorks)上工作,当输入 0x93 时锁定它,解锁它的唯一方法是输入 0x91(左前导单引号;XON 字符(0x11,又名“控制 Q”)与MSb 设置为 0 使其成为 0x91)。同一个系统响应正常的 XON/XOFF,实际上两者可以同时设置,在这种情况下,需要两种形式的 XON 才能解锁。

【讨论】:

    猜你喜欢
    • 2017-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-20
    相关资源
    最近更新 更多