JavaScript拆分功能 - 使用转义字符?

时间:2011-03-14 05:05:20

标签: javascript

以下两个例子做同样的事情。

我想知道为什么在我找到的代码示例中给出了选项1而不是选项2?

'/ \& /'

中前进/后退斜杠的意义是什么

选项1。

    var pairs = qString.split(/\&/);

选项2。

    var pairs = qString.split('&');

3 个答案:

答案 0 :(得分:3)

split()是一个可以采用正则表达式和字符串参数的函数,正斜杠用法是一种称为正则表达式的文字,它并不是真正传递一个字符串而是一个正则表达式对象。

javascript中的以下陈述是相同的。

var regex = /\&/; // Literal
var regex = new RegExp("\\&"); // Explicit

答案 1 :(得分:3)

选项1使用RegEx常量,该常量使用周围的正向斜线(/)声明。

选项2使用字符串。

请参阅https://developer.mozilla.org/en/Core_JavaScript_1.5_Guide/Regular_Expressions

答案 2 :(得分:2)

第一个例子拆分regular expression(使用倾斜牙签(/.../)语法构建),而第二个例子拆分为普通字符串。

正则表达式是一种强大的子语言,允许复杂的字符串匹配;在这种情况下,使用一个分割文字字符(虽然可能忽略不计)的开销有点傻。这就像聘请一位顶尖的建筑师来建造木制立方体一样。

在第一个示例中,&字符被错误地转义(使用\),因为它在正则表达式中并不特殊。然而,正则表达式引擎会优雅地处理它,并仍然将其视为文字&