给定字符串 str,检查其是否包含 连续3个数字,请使用正则表达式实现。
1、如果包含,返回最先出现的 3 个数字的字符串
2、如果不包含,返回 false
function captureThreeNumbers(str) { return str.match(/\d{3}/) || false; }
function captureThreeNumbers(str) { //String.prototype.match(reg)返回一个数组 //当只匹配一次时: //数组的第一个元素为匹配的字符串,第2个元素为匹配字符串第一个字符的index,如下—— //var a = "12aaa345987".match(/\d{3}/); // 输出a为["345", index: 5, input: "12aaa345987", groups: undefined] //当设定全局匹配时: //返回的数组为各个匹配的字符串,且同一位置的字符不重复匹配,如下—— //var a = "12aaa345987".match(/\d{3}/g); //输出a为["345", "987"] var reg = /\d{3}/; if(reg.test(str) == true) return str.match(reg)[0]; //题目的最新出现是第一个出现的意思? return false; }
function captureThreeNumbers(str) { //声明一个数组保存匹配的字符串结果 var arr = str.match(/\d{3}/); //如果arr存在目标结果,则返回第一个元素,即最早出现的目标结果 if(arr) return arr[0]; else return false; }
function captureThreeNumbers(str) { return (/\d{3}/.exec(str) || ['false'])[0]; }
function captureThreeNumbers(str) { var arr = str.split(''), len = arr.length, count = 0, temp = ''; for (var i = 0; i < len; i++) { if (Math.abs(Number(arr[i]) - Number(arr[i + 1])) === 1) { count++; if (count <= 3) { if (i === len - 2 && count == 2) { temp += arr[i] + arr[i + 1]; return temp; } temp += arr[i]; } else { return temp; } } else { temp = ''; count = 0; } } return false; } console.log(captureThreeNumbers('9876543')); //987 console.log(captureThreeNumbers('1211987')); //987 console.log(captureThreeNumbers('1223346')); //false console.log(captureThreeNumbers('9122334')); //false