/^(\w{15}|\w{18})$/
附:
\w 匹配字母或数字或下划线或汉字 等价于 ‘[^A-Za-z0-9_]’。
\s 匹配任意的空白符
\d 匹配数字
\b 匹配单词的开始或结束
^ 匹配字符串的开始
$ 匹配字符串的结束
\w能不能匹配汉字要视你的操作系统和你的应用环境而定
也就是说,如果要的效果是15或18位的数字,把w改成d就行了
补充:如果要用 RegExp 这种方式,则需要多家一个斜杠,变成这样
let o = "^(\\w{15}|\\w{18})$"
new RegExp(o)
o.test('12dsa1d31as23d12a3s1')