神秘的表达

时间:2012-02-12 12:16:02

标签: javascript jquery syntax

有什么意义:

if ( /red|green|blue/.test(key) .. )

我之前从未见过,它是如何运作的?

发现于: http://wiki.jqueryui.com/w/page/12138135/Widget-factory

3 个答案:

答案 0 :(得分:3)

简单地说,它测试字符串key,如果它包含redgreenblue

这就是//之间的东西是创建regexp object的一种方式。 .test()对regexp对象进行操作,如果找到匹配则返回true,否则返回false。

这是一个更加分散的版本:

key = "red orange yellow green";  //sample string

pattern = /red|green|blue/;
result = pattern.test(key);

if(result){.... //will execute since string contained red OR green

key = "red orange yellow green";  //sample string

pattern = new RegExp('red|green|blue');
result = pattern.test(key);

if(result){.... //will execute since string contained red OR green

答案 1 :(得分:1)

/red|green|blue/部分是Regular Expressiontest()方法用于搜索该正则表达式与作为参数传递的字符串之间的匹配。

答案 2 :(得分:0)

斜杠/表示正则表达式字面值。测试关键变量以匹配此表达式。如果密钥的字符串表示包含redgreenblue,则 if block 将被执行。