向我解释这个过滤器代码 - javascript

时间:2013-05-12 22:00:15

标签: javascript filter

在过去的一篇论文中提出了一个问题:

...
var filter = /^([a-zA-Z]){2}[0-9]$/;
if (!filter.test(val)){
...

有人可以向我解释一下:

  1. 存储在var中的内容,解释其中的每个元素
  2. .test做什么?
  3. 提前致谢

    编辑: (全功能)

    function validateField(val)
    {
        var filter = /^([a-zA-Z]){2}[0-9]$/;
        if (!filter.test(val))
        {
            alert('Please enter correct value');
            return false;
        }
        return true;
    }
    

2 个答案:

答案 0 :(得分:1)

问题:存储在var中的内容,解释其中的每个元素? 答案: /^([a-zA-Z]){2}[0-9]$/这是一个正则表达式。

^([A-ZA-Z]){2}

^意味着开始 ([a-zA-Z])表示输入必须是小写字符a-z和大写字符A-Z {2}表示必须是两个字符。

[0-9] $ [0-9]表示0到9范围内的数字,$ means必须以此数字结束。

因此/^([a-zA-Z]){2}[0-9]$/表示

输入应以两个大写或小写的a-z | A-Z字符开头,并以0到9之间的数字结尾。

问题: .test做什么? 答案: test()方法测试字符串中的匹配项 如果找到匹配项,则此方法返回true,否则返回false。

最后,我建议你看看http://www.regular-expressions.info/tutorial.html。它包含正则表达式的教程。

答案 1 :(得分:0)

filter中的字符串是正则表达式,因此请查看:http://www.regular-expressions.info

使用if(!filter.test(val))它将测试值(val)是您在上面的行中生成的正则表达式的有效形式。您可以在此处测试正则表达式:http://www.regular-expressions.info/javascriptexample.html