[英]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.