【发布时间】: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-]+$"工作吗?