【问题标题】:Explain to me this filter code - javascript [closed]向我解释这个过滤器代码 - javascript [关闭]
【发布时间】:2013-05-06 22:07:05
【问题描述】:

这是过去试卷中的一个问题:

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

谁能给我解释一下:

  1. var 中存储的内容,解释其中的每个元素
  2. .test 有什么作用?

提前致谢

编辑: (全功能)

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

【问题讨论】:

  • 该代码正在测试val 是否与filter 正则表达式匹配。
  • 我的 RegExp 生锈了,但我认为该模式会尝试匹配以 2 个字母和一个数字开头的内容。
  • @Joseph the Dreamer:非常接近:不是开始,而是整个字符串两个字母后跟一个数字
  • 短:/^[a-z]{2}\d$/i
  • @Ouz Kedz: pro-search-pattern: "javascript %functionname% function mdn" in google。在这种情况下,它是“javascript test function mdn”并检查 Mozilla Developers Network wiki 页面以及功能描述

标签: javascript filter


【解决方案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 范围内的数字,$ 表示必须以此数字结尾。

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

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

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

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

【讨论】:

  • 哦,对了,现在我听说了正则表达式。错过了那个讲座。现在我知道我应该搜索什么了。谢谢
【解决方案2】:

filter 中的字符串是正则表达式,看一下:http://www.regular-expressions.info

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

【讨论】:

  • 谢谢,我不知道该搜索什么。我会仔细看看 RegExpr
猜你喜欢
  • 2015-08-28
  • 2011-09-06
  • 2018-04-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多