正则表达式不过滤文本

时间:2014-03-26 05:59:10

标签: javascript regex

<script type="text/javascript">
function clean(e){
    var textfield = document.getElementById(e);
    var regex = /[^a-z 0-9]/gi;

    textfield.value = textfield.value.replace(regex, "");
}
</script>
<textarea id="ta" name="ta" onkeyup="clean('ta')" onkeydown="clean('ta')"></textarea>

你可以看到我的代码过滤了所有的字母字符,我希望实时这样做,但这段代码不起作用。请帮我解决这个问题。

Fiddle represtation

2 个答案:

答案 0 :(得分:1)

您可以使用以下方法删除所有字母(A-Za-z):

DEMO

function clean(e) {
    var textfield = document.getElementById(e);
    var regex = /[a-z]/gi;    // all alphabet characters ignorecase
    textfield.value = textfield.value.replace(regex, "");
}

您需要将您的JavaScript代码保存在html中的<script>标记中,因为当它到达onclick="clean('ta')"时,它还没有达到函数{{}的声明1}}然后抛出一个clean(你在控制台中看到的ReferenceError))

答案 1 :(得分:0)

检查 demo jsFiddle

我该怎么办?

  • 修改现有正则表达式以更新此/[a-zA-Z]/gi以忽略大写和小写字母字符。

  • 我可以 validate 你的正则表达式


HTML

<textarea id="ta" name="ta" onkeyup="clean('ta')" onkeydown="clean('ta')"></textarea>

的JavaScript

function clean(e) {
    var textfield = document.getElementById(e);
    var regex = /[a-zA-Z]/gi;
    textfield.value = textfield.value.replace(regex, "");
}

希望这对你有帮助!