特殊字符验证未按预期工作



我正在尝试将正则表达式验证应用于文本框用户控件,并且只有在文本框的文本末尾输入某些内容时,它才起作用。当我在文本中间的某处键入某些内容时,它不起作用。

例如:嘿,伙计!(当我在文本末尾键入"!"时,我的代码工作正常) 嘿!男人!(但是当我在键入整个文本后在文本中间的某处插入"!"时,不起作用)

以下是我的代码:

$("textarea[id$=<%= TxtValue.ClientID %>]").keyup(function () {
            var txt = $(this).val();
            var regex = new RegExp('[^0-9a-zA-Z-,_.:s]+$');
            var vldttxt = regex.test(txt);
            if (txt.length > 0 && vldttxt === true) {
                alert("Error");
            }
            var noSpclChar = txt.replace(regex, "");
            this.value = noSpclChar;
        });

任何帮助将不胜感激!谢谢!

这应该有效。你的结尾 $ 是阻止它匹配字符串中的任何内容的原因:

$("textarea[id$=<%= TxtValue.ClientID %>]").keyup(function () {
            var txt = $(this).val();
            var regex = new RegExp('[^0-9a-zA-Z-,_.:s]+');
            var vldttxt = regex.test(txt);
            if (txt.length > 0 && vldttxt === true) {
                alert("Error");
            }
            var noSpclChar = txt.replace(regex, "");
            this.value = noSpclChar;
        });

> 最简单的代码....特殊字符验证

  function checkForm(theForm) {
     var result = /^[a-z0-9\.;,:'\s]{1,100}$/i(theForm.data.value);
     if (!result) {
        alert("No legal characters entered");
     }
     return !!result;
  }

最新更新