我最近遇到了声明:
var cookies = document.cookie.split(/;/);
和
var pair = allCookies[i].split("=", 2);
if (pair[0].replace(/^ +/, "") == "lastvisit")
在第一个语句中,split的参数中的/;/
表示什么?
在第二个语句中,替换参数中的/^ +/
表示什么?
答案 0 :(得分:7)
Javascript supports them natively。
在这个特定的例子中:
.split(/;/)
使用;
作为拆分字符; .replace(/^ +/, "")
删除(""
)任何(+
)前导(^
)空格(
)。在这两个示例中,/
环绕或分隔正则表达式(或“正则表达式”),通知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-“”字符