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

What does /;/ and /^ +/ denote?

本文关键字:什么 表示      更新时间:2023-09-26

我最近看到这样一句话:

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

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

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

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

这些是正则表达式。

Javascript原生支持。

在这个特殊的例子中:

  1. .split(/;/)使用;作为分割字符;
  2. .replace(/^ +/, "")删除("")任何(+)前导(^)空格()。

在这两个示例中,//包围或分隔正则表达式(或"regex"),通知Javascript您正在提供一个regex。

点击上面提供的链接获取更多信息;

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

/;/匹配分号。具体来说:

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

表示拆分文档。Cookie字符串变成一个数组,在有分号的地方分割它。所以它会把"a;b;c"这样的东西变成["a","b","c"]。

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

只是去掉所有前导空格。结果

"     lastvisit"

"lastvisit"

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

/;/语法表示正则表达式(也称为'regex')。

Regex是用于搜索和替换字符串的语法。

你给出的第一个例子是split(";")。这是一个非常简单的正则表达式,它只是搜索字符串中的分号,然后根据结果将其拆分为一个数组。因为这没有使用任何特殊的正则表达式功能,它可以很容易地表示为一个简单的字符串,即/^ +/(就像你的其他例子中的等号一样),而不会对结果产生任何影响。

第二个例子是CC_14。这就比较复杂了,并且需要一些关于正则表达式工作原理的知识。简而言之,它所做的就是在字符串中搜索前导空格,并删除它们。

要了解更多关于正则表达式的知识,我推荐这个站点作为一个很好的起点:http://www.regular-expressions.info/

希望对你有帮助。

我认为/^ +/的意思是:一个或多个非" "字符