我想写一个正则表达式,允许使用字母数字值和特殊字符,除了这里提到的''','^','=',''','<','>','| “我对此很新,并没有真正了解如何做到这一点。我正在尝试下面的事情:
function dbaNameCheck(input, regex)
{
if (regex && input.value.length > 0)
{
if(regex.match(/dbaNameCheck/i) && input.value.match(/[0-9A-Za-z]|[\`\^\=\"\<\>\|]*/g))
{
input.value = input.value.replace(/[\`\^\=\"\<\>\|]*/g, '');
input.focus();
}
}
}
我在keypress事件上调用了这个函数:
onkeypress="dbaNameCheck(this,'dbaNameCheck');"
但它没有按预期工作。我的文本框中的值可以是字母数字和除上述之外的任何特殊字符。有人可以帮我这个吗?
答案 0 :(得分:2)
重写你的功能:
function dbaNameCheck(input)
{
var re = /[`\^="<>|]+/g;
if (input.value.length > 0 && re.test(input.value))
{
input.value = input.value.replace(re, '');
input.focus();
}
}
然后这样称呼:
onkeyup="dbaNameCheck(this);"
onKeyup是您要捕获的事件,而不是onKeypress。
答案 1 :(得分:1)
/[^`^="<>|]/
应匹配除这些字符之外的所有内容。第一个^表示“除了以下字符之外的任何东西”。
<小时/> 但是如果你打算用空字符串替换它们,你可能不首先想要
^
。
'|||abc<==<<<'.replace(/[<>|]/g, '')
给出“abc ===”
答案 2 :(得分:0)
仅供参考,这是另一种(老派)方式来实现您想要做的事情,而不使用正则表达式。但是,如果无法处理复制粘贴。
首先声明你的功能
function killKeys(e)
{
switch(e.charCode)
{
case 60: // "<"
case 61: // "="
case 62: // ">"
case 94: // "^"
case 96: // "`"
return false;
break;
default:
return true;
}
}
然后像这样称呼它
onkeypress="return killKeys(event);
答案 3 :(得分:0)
<script language="javascript" type="text/javascript">
function isNumberKey(evt) {
var charCode = (evt.which) ? evt.which : event.keyCode;
if (charCode != 46 && charCode > 31 && (charCode < 97 || charCode > 122) && (charCode < 65 || charCode > 96) && (charCode < 48 || charCode > 57) || charCode == 110 || charCode == 190)
return false;
return true;
}
</script>
<asp:TextBox ID="txtCompany" runat="server" onkeypress="return isNumberKey(event)" ></asp:TextBox>