利用正则判断是否为素数
本文主要记录正则中\N的用法
var n = 7; //要判断的数字 // 转换成具有n长度的字符串 var s = []; while (n--){ s.push('i'); } s = s.join(''); // s = 'iiiiiii' var re = /^i?$|^(ii+?)\1+$/; // 关键的正则 !re.test(s); // true
为什么这个正则会起作用呢?
原因主要是在\1这个地方。
正则|前半部分主要是判断0或1的,很简单。
\N代表了第N组的内容,那么这个正则的|后面的部分的意思就是取前m(m>=2)个i,看看m个i后是不是正正好好有m * 自然数个i。等同于s的长度能不能被m整除,几乎就是最原始的遍历整除测试判断法。