1

这怎么可能?

var re = /\w+/;

我从未在任何其他语言中看到过类似的东西。这是语言语法的一部分还是其他什么?前导'/'是我不明白的,当它用“\w+/”得到它时,js究竟做了什么?

4

7 回答 7

3

它是一个正则表达式文字。

来自 MDN 文档

您可以通过以下两种方式之一构建正则表达式:

使用正则表达式文字,如下所示:

var re = /ab+c/; 

正则表达式文字在评估脚本时提供正则表达式的编译。当正则表达式保持不变时,使用它以获得更好的性能。

调用RegExp对象的构造函数,如下: 1

var re = new RegExp("ab+c");

使用构造函数提供正则表达式的运行时编译。当您知道正则表达式模式将发生变化时,或者您不知道该模式并从另一个来源(例如用户输入)获取它时,请使用构造函数。

于 2013-02-01T16:30:16.577 回答
1

这是一个正则表达式字面量

它与使用RegExp构造函数构建正则表达式大致相同,但它在解析时立即编译,您不需要 escape \

请注意,您至少在另一种语言中具有相同的句法结构:Perl。

于 2013-02-01T16:29:50.310 回答
0

它不是 JavaScript 独有的,它的正则表达式或 RegEx。'/' 开始和结束您要与之比较的表达式。

于 2013-02-01T16:29:12.753 回答
0

那是一个正则表达式。它定义了匹配字符串和数字的规则。

于 2013-02-01T16:29:33.240 回答
0

是正则表达式;用于对文本执行模式匹配和“搜索和替换”功能。

http://www.w3schools.com/jsref/jsref_obj_regexp.asp

于 2013-02-01T16:29:54.083 回答
0

是的,它是正则表达式语法,它是 Javascript 标准的一部分,完全可以正常使用。

/\w+/在 RegExp 中的意思是按顺序查找字母数字字符... \w表示字母赌注中的任何字母或数字。+表示在一个序列中应该至少有 1 个或多个。

"this123 is a test".match(/\w+/) == "this123"
于 2013-02-01T16:29:58.757 回答
0

有点诗意:/对正则表达式就像"对字符串一样。

var intVar = 0;
var stringVar = "0";
var regexpVar = /0/;
于 2013-02-01T16:30:46.347 回答