为什么这3行代码一运行网页就会崩溃
const value = ' '
const reg = new RegExp('^(.|\\s){0,40}$')
const isPass = reg.test(value)
完整html
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style>
</style>
</head>
<body>
页面
<script>
const value = ' '
const reg = new RegExp('^(.|\\s){0,40}$')
const isPass = reg.test(value)
</script>
</body>
</html>
主要是 js 线程卡死了,你把正则换成
new RegExp('^\s{0,40}$')
就行了还有,锚点
^
和$
是要求同时满足的,也就是上面这个写法虽然能运行,但会返回false
这两个锚点 共同 限定了整个字符串的开头和结尾,要求字符串中没有其他字符,只能是空白符。因此,如果匹配字符串中 只包含 空白符,并且没有其他字符,那么正则表达式 无法匹配 整个字符串(因为可以认为总是只满足了
^
的规则),返回结果就是false
如果要匹配 40 个空格可以考虑只选一边
new RegExp('^\s{0,40}')