/; /和/ ^ + /表示什么?

时间:2011-09-24 16:22:02

标签: javascript regex

我最近遇到了声明:

var cookies = document.cookie.split(/;/);

var pair = allCookies[i].split("=", 2);
if (pair[0].replace(/^ +/, "") == "lastvisit")

在第一个语句中,split的参数中的/;/表示什么?

在第二个语句中,替换参数中的/^ +/表示什么?

4 个答案:

答案 0 :(得分:7)

这些是Regular Expressions

Javascript supports them natively

在这个特定的例子中:

  1. .split(/;/)使用;作为拆分字符;
  2. .replace(/^ +/, "")删除("")任何(+)前导(^)空格()。
  3. 在这两个示例中,/环绕或分隔正则表达式(或“正则表达式”),通知Javascript您正在提供正则表达式。

    请按照上面提供的链接获取更多信息;正则表达的范围很广,值得学习。

答案 1 :(得分:3)

斜杠分隔正则表达式,就像引号分隔字符串一样。

/; /匹配分号。具体做法是:

var cookies = document.cookie.split(/;/);

意味着我们将document.cookie字符串拆分为一个数组,将其拆分为分号。所以它需要“a; b; c”之类的东西,然后把它变成[“a”,“b”,“c”]。

pair[0].replace(/^ +/, "")

只需删除所有前导空格。它变成

"     lastvisit"

"lastvisit"

插入符号^表示“行首”,后面跟空格,+表示尽可能多地重复空格一次或多次。

答案 2 :(得分:0)

//语法表示正则表达式(也称为“正则表达式”)。

Regex是一种搜索和替换字符串的语法。

您提供的第一个示例是/;/。这是一个非常简单的正则表达式,只是在字符串中搜索半冒号,然后根据结果将其拆分为数组。由于这不是使用任何特殊的正则表达式功能,它可以很容易地被表达为一个简单的字符串,即split(";")(就像你在另一个例子中使用等号所做的那样),而没有任何区别。结果

第二个例子是/^ +/。这更复杂,需要了解正则表达式的工作原理。简而言之,它正在做的是在字符串上搜索前导空格并删除它们。

要详细了解正则表达式,我建议将此网站作为一个很好的起点:http://www.regular-expressions.info/

希望有所帮助。

答案 3 :(得分:-2)

我认为/ ^ + /表示:一个或多个no-“”字符