我在这个代码中有个问题。当我运行它时,然后插入一个两位数的数字,脚本就会将它分开。例:输入12表示1偶数和1奇数;输入26表示2偶数;我希望它是混合的,所以如果输入两位数或更多数字(不包括432152),则需要1和1值,并显示为1偶数。感谢您有机会在这里寻求帮助!
function countfromzero() {
if (document.getElementById("maintextbox").value !="") {
CalculateNumbers();
}
}
function CalculateNumbers() {
var arr = [];
var asd = 0;
var evn = 0;
arr = document.getElementById("maintextbox").value;
arr = arr.replace(/, | /g, "");
for (i = 0; i < arr.length; i++) {
if (arr[i] % 2 != 0) {
asd++;
}
else {
evn++;
}
}
document.getElementById("eventextbox").value = evn;
document.getElementById("oddtextbox").value = asd;
}<input type="text" name="maintextbox" id="maintextbox">
<input type="button" id="buttton" name="Process" value="Process" onclick="countfromzero();"><br>
Even:<input type="text" name="eventextbox" id="eventextbox"><br>
Odd:<input type="text" name="oddtextbox" id="oddtextbox">
发布于 2018-10-19 07:45:44
您的arr变量不是一个数组,显然您希望它成为数组。将replace方法更改为split方法(带有稍微不同的RegEx),您就完成了
function countfromzero() {
if (document.getElementById("maintextbox").value !="") {
CalculateNumbers();
}
}
function CalculateNumbers() {
var arr = [];
var asd = 0;
var evn = 0;
var str = document.getElementById("maintextbox").value;
arr = str.split(/[^\d]+/g);
for (i = 0; i < arr.length; i++) {
if (arr[i] % 2 != 0) {
asd++;
}
else {
evn++;
}
}
document.getElementById("eventextbox").value = evn;
document.getElementById("oddtextbox").value = asd;
}<input type="text" name="maintextbox" id="maintextbox" value="432152">
<input type="button" id="buttton" name="Process" value="Process" onclick="countfromzero();"><br>
Even:<input type="text" name="eventextbox" id="eventextbox"><br>
Odd:<input type="text" name="oddtextbox" id="oddtextbox">
https://stackoverflow.com/questions/52887620
复制相似问题