Javascript 如何检查数字中是否多次使用数字
示例:我们有编号Javascript 如何检查数字中是否多次使用数字,javascript,Javascript,示例:我们有编号1122。我想检查给定的数字是否多次包含数字1。在这种情况下,它应该返回true 我需要的代码是灵活的,它必须与任何数字,如3340,5660,4177等一起工作。使用javascript的方法。基本上,您需要做的是首先将数字转换为字符串。数字没有RegExp方法。然后,全局匹配数字1并计算结果(match返回一个包含所有匹配结果的数组) 使用javascript的方法。基本上,您需要做的是首先将数字转换为字符串。数字没有RegExp方法。然后,全局匹配数字1并计算结果(matc
1122
。我想检查给定的数字是否多次包含数字1
。在这种情况下,它应该返回true
我需要的代码是灵活的,它必须与任何数字,如3340
,5660
,4177
等一起工作。使用javascript的方法。基本上,您需要做的是首先将数字转换为字符串。数字没有RegExp方法。然后,全局匹配数字1并计算结果(match返回一个包含所有匹配结果的数组)
使用javascript的方法。基本上,您需要做的是首先将数字转换为字符串。数字没有RegExp方法。然后,全局匹配数字1并计算结果(match返回一个包含所有匹配结果的数组)
函数查找(num,tofind){
var b=parseInt(num,10);
var c=parseInt(tofind,10);
var a=c.分割(“”);
var时间=0;
对于(变量i=0;i
函数查找(num,tofind){
var b=parseInt(num,10);
var c=parseInt(tofind,10);
var a=c.分割(“”);
var时间=0;
对于(变量i=0;i
您可以通过调用toString
方法或连接以下内容,轻松地“强制”JS将任何数值强制为字符串:
var someNum = 1122;
var oneCount = (someNum + '').split('1').length;
通过将数字连接到空字符串,变量被强制为字符串,因此您可以使用所有喜欢的字符串方法(.match
,.substring
,.indexOf
,…)在本例中,我选择在每个
'1'
字符上拆分字符串,计算并使用结果数组的长度。如果长度>2,则您知道您需要知道的内容。var multipleOnes = ((someNum + '').split('1').length > 2);//returns a bool, true in this case
针对您的评论,为了使其灵活,编写一个简单的函数可以:
function multipleDigit(number, digit, moreThan)
{
moreThan = (moreThan || 1) + 1;//default more than 1 time, +1 for the length at the end
digit = (digit !== undefined ? digit : 1).toString();
return ((someNum + '').split(digit).length > moreThan);
}
multipleDigit(1123, 1);//returns true
multipleDigit(1123, 1, 2);//returns false
multipleDigit(223344,3);//returns 3 -> more than 1 3 in number.
您可以通过调用toString
方法或连接以下内容,轻松地“强制”JS将任何数值强制为字符串:
var someNum = 1122;
var oneCount = (someNum + '').split('1').length;
通过将数字连接到空字符串,变量被强制为字符串,因此您可以使用所有喜欢的字符串方法(.match
,.substring
,.indexOf
,…)在本例中,我选择在每个
'1'
字符上拆分字符串,计算并使用结果数组的长度。如果长度>2,则您知道您需要知道的内容。var multipleOnes = ((someNum + '').split('1').length > 2);//returns a bool, true in this case
针对您的评论,为了使其灵活,编写一个简单的函数可以:
function multipleDigit(number, digit, moreThan)
{
moreThan = (moreThan || 1) + 1;//default more than 1 time, +1 for the length at the end
digit = (digit !== undefined ? digit : 1).toString();
return ((someNum + '').split(digit).length > moreThan);
}
multipleDigit(1123, 1);//returns true
multipleDigit(1123, 1, 2);//returns false
multipleDigit(223344,3);//returns 3 -> more than 1 3 in number.
JavaScript
JavaScript将数字转换为字符串并迭代。为提高效率,在找到第二个数字后返回true
function checkDigitRepeat(number, digit) {
var i, count = 0;
i = Math.abs(number);
if(isNaN(i)) {
throw(TypeError('expected Number for number, got: ' + number));
}
number = i.toString();
i = Math.abs(digit);
if(isNaN(i)) {
throw(TypeError('expected Number for digit, got: ' + digit));
}
digit = i.toString();
if(digit > 9) {
throw(SyntaxError('expected a digit for digit, got a sequence of digits: ' + digit));
}
for(i = 0; i < number.length; i += 1) {
if(number[i] === digit) {
count += 1;
if(count >= 2) { return true; }
}
}
return false;
}
函数checkDigitRepeat(数字){
变量i,计数=0;
i=Math.abs(数字);
if(isNaN(i)){
throw(TypeError('Number的预期数字,get:'+Number));
}
number=i.toString();
i=数学abs(数字);
if(isNaN(i)){
throw(TypeError('数字的预期数字,get:'+数字));
}
数字=i.toString();
如果(数字>9){
throw(SyntaxError('digit需要一个数字,获取一个数字序列:'+digit');
}
对于(i=0;i=2){return true;}
}
}
返回false;
}
如果要检查数字序列,您的解决方案可能在于使用正则表达式。将数字转换为字符串并对其进行迭代。为提高效率,在找到第二个数字后返回true
function checkDigitRepeat(number, digit) {
var i, count = 0;
i = Math.abs(number);
if(isNaN(i)) {
throw(TypeError('expected Number for number, got: ' + number));
}
number = i.toString();
i = Math.abs(digit);
if(isNaN(i)) {
throw(TypeError('expected Number for digit, got: ' + digit));
}
digit = i.toString();
if(digit > 9) {
throw(SyntaxError('expected a digit for digit, got a sequence of digits: ' + digit));
}
for(i = 0; i < number.length; i += 1) {
if(number[i] === digit) {
count += 1;
if(count >= 2) { return true; }
}
}
return false;
}
函数checkDigitRepeat(数字){
变量i,计数=0;
i=Math.abs(数字);
if(isNaN(i)){
throw(TypeError('Number的预期数字,get:'+Number));
}
number=i.toString();
i=数学abs(数字);
if(isNaN(i)){
throw(TypeError('数字的预期数字,get:'+数字));
}
数字=i.toString();
如果(数字>9){
throw(SyntaxError('digit需要一个数字,获取一个数字序列:'+digit');
}
对于(i=0;i=2){return true;}
}
}
返回false;
}
如果您想检查数字序列,您的解决方案可能在于使用正则表达式。使用有抱负的Aqib的答案,我制作了一个实际工作正常且符合我要求的函数 它的工作方式是: 执行示例:
multDig('221','2')
数字
(第一个参数)拆分为一个数组,其中每个元素都是一位数字。输出:
['2','2','1']
for
循环,检查每个数组元素是否与数字(第二个参数)匹配,如果匹配,则增加乘以变量。
输出:2
22111111
true
如果多次找到该数字,否则返回false
function multDig(number, digit){
var finalSplit = number.toString().split(''), times = 0;
for (i = 0; i < finalSplit.length; i++){
if (finalSplit[i] == digit){
times++
}
if (times > 1){
return true;
}
}
return false;
}
功能多路(数字、数字){
var finalSplit=number.toString().split(“”),times=0;
对于(i=0;i1){
返回true;
}
}
返回false;
}
使用有抱负的Aqib的答案,我制作了一个功能,它能以我想要的方式正常工作
它的工作方式是:
埃克萨