2 qq 37811712 qq_37811712 于 2017.08.31 12:08 提问

js正则有两个问题跪求高人指点

var evalExpr = /<%=(.+?)%>/g;
var expr = /<%([\s\S]+?)%>/g;

这两个正则里面的括号 .+?我知道是啥意思,放一起就不知道了?
括号我知道是取值 请问这是取一个字符吧?

\s\S 和 . 哪个范围最大?

2个回答

sinat_32290679
sinat_32290679   2017.08.31 14:35

应该不只是取一个字符吧,+表示一个或多个,?表示匹配零次或一次
组合在一起就是 整个字符序列出现0次或一次
\s是匹配空白字符包括空格、制表符、换页符
\S是匹配非空白字符

u014423965
u014423965   2017.08.31 14:39

.匹配除\n外的任意字符,\s匹配任何空白字符,\S匹配任何非空白字符,.的范围最大,其次是\S,最后是\s。?用于消除贪婪匹配。

Csdn user default icon
上传中...
上传图片
插入图片