загадочное выражение - PullRequest
       2

загадочное выражение

0 голосов
/ 12 февраля 2012

В чем смысл:

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

Я никогда не видел этого раньше, как это работает?

найдено на: http://wiki.jqueryui.com/w/page/12138135/Widget-factory

Ответы [ 3 ]

3 голосов
/ 12 февраля 2012

Проще говоря, он проверяет строку key, если она содержит red, green или blue.

. Дело в том, что содержимое между // является одним из способовсоздать регулярное выражение . .test () работает с объектами регулярного выражения и возвращает 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 голос
/ 12 февраля 2012

Часть /red|green|blue/ представляет собой регулярное выражение , а метод test() используется для поиска совпадениямежду этим регулярным выражением и строкой, передаваемой в качестве параметра.

0 голосов
/ 12 февраля 2012

Косая черта / обозначает литерал регулярного выражения. Переменная ключа проверяется на соответствие этому выражению. Блок if будет выполнен, если строковое представление ключа содержит red, green или blue.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...