如何使用正则表达式检查字符串是否有3个或更多小数点,没有方法

时间:2018-03-14 17:08:49

标签: javascript regex

如何使用正则表达式检查字符串是否包含3个或更多小数点。 我只想使用正则表达式来解决这个问题。

var string1 = "1.23432 12.123.1231"; // true
var string2 = "1.23432 12123.1231"; // false

我认为会起作用但不会:

let regx2 = RegExp(/.{3,}/g);
  if(regx2.test(string1)){
    output = false;
  }

非常感谢任何帮助。

6 个答案:

答案 0 :(得分:1)

另一种方法是使用函数match

此方法仅计算点数,与当前格式无关。

此正则表达式/(\.)/g捕获所需的组。



console.log(("1.23432 12.123.1231".match(/(\.)/g) || []).length >= 3);
console.log(("1.23432 12123.1231".match(/(\.)/g) || []).length >= 3);




答案 1 :(得分:1)

将字符串与常规字符串匹配时,可以使用match检索匹配项。

function hasMoreThan3OrMore(s) {
  return s.match(/\./g).length >= 3;
}

var string1 = "1.23432 12.123.1231"; // true
var string2 = "1.23432 12123.1231"; // false

console.log(hasMoreThan3OrMore(string1));
console.log(hasMoreThan3OrMore(string2));

答案 2 :(得分:1)

使用正则表达式的另一种方法是使用String.split()并检查长度,如下所示:



console.log("1.23432 12.123.1231".split(".").length > 3); // true
console.log("1.23432 12123.1231".split(".").length > 3); // false




答案 3 :(得分:0)

您可以删除所有非.个字符,然后检查长度

let strs = [
  "11.11 1.111.11.1111",
  "1.1.1"
]

for (let s of strs) {
  console.log(s.replace(/[^\.]/g, '').length >= 3)
}

答案 4 :(得分:0)

RegExp.test()返回一个布尔值,所以你可以简单地返回它。修正你的拼写错误也可以解决你的错误:

var string1 = "1.23432 12.123.1231"; // true
var string2 = "1.23432 12123.1231"; // false

let regx2 = RegExp(/.{3,}/g);

console.log(regx2.test(string1); // true
console.log(regx2.test(string2); // false

答案 5 :(得分:0)

我正在寻找的正则表达式是

 let regx2 = RegExp(/^(.*\.){3,}\d+$/g);
 if(regx2.test(string2)){
   console.log('testing 3 or more . :', string1);
   output = false;
 }

我正在努力改善我使用正则表达式的知识,因此正在寻找一种只使用正则表达式而不使用方法的答案。感谢您的所有帮助,我实际上甚至没有考虑检查字符串是否包含小数,然后检查它返回的次数。