微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在JavaScript中,空的正则表达式模式是否定义了行为?

var pattern = /(?:)/

从我的测试,似乎匹配一切.这是定义的行为吗?

解决方法

这并不直接回答这个问题,但是这里有关于空的正则表达式的规范呢?

15.5.4.14 String.prototype.split (separator,limit)

The value of separator may be an empty String,an empty regular expression,or a regular expression that can match an empty String.

7.8.5 Regular Expression Literals

NOTE Regular expression literals may not be empty; instead of representing an empty regular expression literal,the characters // start a single-line comment. To specify an empty regular expression,use: /(?:)/ .

所以假定它是.split()中的分隔符的可接受的值,我猜想它是定义的行为,作为分割每个字符的一种方式.

"fjeij;als#%^&é.\n isoij\t;oi`1=+-]\r".split(/(?:)/);

["f","j","e","i",";","a","l","s","#","%","^","&","é",".","
"," ","o","  ","`","1","=","+","-","]","
"]

原文地址:https://www.jb51.cc/js/151040.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐