在javascript中正则表达式和字符串有什么区别?

时间:2015-04-29 15:50:50

标签: javascript regex

> "1fff=*; style=mobile".match("[\s]*")
[ '', index: 0, input: '1fff=*; style=mobile' ]
> "1fff=*; style=mobile".match("[^;]*")
[ '1fff=*', index: 0, input: '1fff=*; style=mobile' ]
> "1fff=*; style=mobile".match('(^|;)[\s]*style=([^;]*)')
null
> "1fff=*; style=mobile".match(/(^|;)[\s]*style=([^;]*)/)
[ '; style=mobile',
  ';',
  'mobile',
  index: 6,
  input: '1fff=*; style=mobile' ]

str.match(str)可以部分用作正则表达式模式,但存在一些差异。

究竟有什么区别?

1 个答案:

答案 0 :(得分:1)

不同之处在于,在字符串文字中,\s仅表示s - 字符串文字没有\s转义序列,因此\被放弃了。

如果要使用字符串文字,并且需要正则表达式包含\s,则字符串文字需要包含\\s(带有额外的反斜杠),因此字符串将包含{{ 1}}:

\s

(我建议坚持使用正则表达式文字。)