在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","=","+","-","]","
"]

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...