繁体   English   中英

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

[英]How to check if a string has 3 or more decimal points using regex and no methods

如何使用正则表达式检查字符串是否具有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;
  }

任何帮助将非常感激。

一种替代方法是使用match函数:

不管当前格式如何,此方法仅计算点数。

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

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

将字符串与常规匹配时,可以使用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)); 

使用Regex的替代方法是使用String.split()并检查长度,如下所示:

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

您可以删除所有non . 字符,它们检查长度

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

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

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

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

我正在努力提高对使用正则表达式的了解,因此一直在寻找仅使用正则表达式而不使用方法的答案。 感谢您的所有帮助,实际上,我什至没有考虑过检查字符串是否包含小数,然后检查返回的次数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM