需要正则表达式进行表单验证以避免多个特殊字符

时间:2013-01-07 00:08:12

标签: javascript jquery regex

我需要jquery或javascript正则表达式来验证表单文本框,这样如果任何人将输入多次相同的特殊字符,则会生成警报。

例如 你好吗?? 要么 你好吗.... 要么 你好吗@@ ?? ??

请注意我需要阻止“多次”使用特殊字符我不想阻止单个特殊字符。如果需要发送“你好,你好吗?”它应该继续。

谢谢,

[更新] 我得到了最终结果

要验证我们可以使用的所有特殊字符的表单文本框

/(?! )(\W)\1+/

要验证一些特殊字符,我们可以使用

/([@#$%])\1+/;

[]

中添加或删除特殊字符

3 个答案:

答案 0 :(得分:0)

尝试相反:接受输入,过滤掉你想要的所有字符,看看“其余”的长度是否大于或等于2。

答案 1 :(得分:0)

假设特殊字符不是字母,数字和空格,这个正则表达式应该有效:

/(?! )(\W)\1+/

答案 2 :(得分:0)

在提交事件时,请确保文本框中没有无效字符。您可以阻止通过处理程序中的return false提交。

HTML:

<input type='text' id='yourTextboxID' />
<input type='submit' id='submitButton' value='Submit' />  

JS:

document.getElementById('submitButton').onclick = function () {
    var enteredValue = document.getElementById('yourTextboxID').value;

    if (enteredValue.test(/[!@#$%^&*()]+/)) {
        alert('Bad characters!');
        return false;
    }

    return true;
};

如果您愿意,可以修改和测试正则表达式here