正则表达式:字符串中的最小总位数
regex : minimum total number of digits in a string
我想知道本质上类似于密码的字符串中有多少位数字。
现在我有这个正则表达式:
^(?=.*[0-9]{3,})([a-zA-Z0-9_/+*.-]{6,})$
当它们是连续的 3 个数字时效果很好,但当它们在整个字符串中分开时效果不佳。
我需要知道字符串中是否有 3 位数字:
h123dasd
1hkh/23jd
1gvbn/*2fefse-
我能做什么?
您可以使用这个正则表达式:
/^(?=(?:\D*\d){3,})[a-zA-Z0-9_/+*.-]{6,}$/
这将强制您输入的 3 位数字可能连续也可能不连续。
不需要如此复杂的正则表达式 IMO - 只需从字符串中提取数字,连接匹配项,然后检查长度。类似于:
str.match(/\d+/g).reduce((p, c) => p + c).length > 3;
我想知道本质上类似于密码的字符串中有多少位数字。
现在我有这个正则表达式:
^(?=.*[0-9]{3,})([a-zA-Z0-9_/+*.-]{6,})$
当它们是连续的 3 个数字时效果很好,但当它们在整个字符串中分开时效果不佳。
我需要知道字符串中是否有 3 位数字:
h123dasd 1hkh/23jd 1gvbn/*2fefse-
我能做什么?
您可以使用这个正则表达式:
/^(?=(?:\D*\d){3,})[a-zA-Z0-9_/+*.-]{6,}$/
这将强制您输入的 3 位数字可能连续也可能不连续。
不需要如此复杂的正则表达式 IMO - 只需从字符串中提取数字,连接匹配项,然后检查长度。类似于:
str.match(/\d+/g).reduce((p, c) => p + c).length > 3;