Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/439.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 非基于0的数字范围的模_Javascript_Ascii - Fatal编程技术网

Javascript 非基于0的数字范围的模

Javascript 非基于0的数字范围的模,javascript,ascii,Javascript,Ascii,我试图为给定的字母字符串(所有大写字母)操作ASCII代码。在下面的示例中,我将ASCII代码增加1,并将其输出到#newText <h2 id="text">ABCXYZ</h2> <h2 id="newText">placeholder</h2> var text = document.getElementById("text").firstChild.nodeValue; var newText = ""; for (i=0; i <

我试图为给定的字母字符串(所有大写字母)操作ASCII代码。在下面的示例中,我将ASCII代码增加1,并将其输出到
#newText

<h2 id="text">ABCXYZ</h2>
<h2 id="newText">placeholder</h2>

var text = document.getElementById("text").firstChild.nodeValue;
var newText = "";

for (i=0; i < text.length; i++){
  newText = newText + String.fromCharCode(text.charCodeAt(i)+1);
}

document.getElementById("newText").firstChild.nodeValue = newText;
ABCXYZ
占位符
var text=document.getElementById(“text”).firstChild.nodeValue;
var newText=“”;
对于(i=0;i
JSFiddle:

问题是Z被更改为a[(这是有意义的,因为a-Z的ASCII范围是65-90,并且[具有91的ASCII值。)相反,我希望Z转换为a

我已经尝试过让ASCII值环绕,但是对于ASCII值的非0范围,我遇到了困难

如果
x=91;
,那么
console.log(((x-65)%26)+65);
的结果是65,这很好。但是如果
x=64;
那么当我希望它是90时,相同的公式会得到64


在本例中,我想将91转换为65,92转换为66,93转换为67,64转换为90,63转换为89,62转换为88作为示例。

解决方案的第一部分是
console.log((x-65)%26)+65)
。正如您所注意到的,它在某些情况下有效,但在其他情况下无效。因此,在它有效的情况下使用它,在其他情况下使用其他方法。只需编写满足您需要的代码。

您拥有解决方案的第一部分,
console.log((x-65)%26)+65)
。正如您所注意到的,它在某些情况下有效,但在其他情况下无效。因此,在它有效的情况下使用它,在其他情况下使用其他方法。只需编写满足您需要的代码。

您拥有解决方案的第一部分,
console.log((x-65)%26)+65)
。正如您所注意到的,它在某些情况下有效,但在其他情况下无效。因此,在它有效的情况下使用它,在其他情况下使用其他方法。只需编写满足您需要的代码。

您拥有解决方案的第一部分,
console.log((x-65)%26)+65)
。正如您所注意到的,它在某些情况下有效,但在其他情况下无效。因此,在它有效的情况下使用它,在其他情况下使用其他方法。只需编写符合您需要的代码。

好吧,
A-Z
是26个字符,所以请执行算术模26。然后对结果(0…25)进行编码作为所需的字符范围,在本例中只需添加65即可


与解码类似,首先将字符范围转换为数字,然后应用算术。

好的,
A-Z
是26个字符,所以进行算术模26。然后将结果(0…25)编码为所需的字符范围,在这种情况下,只需添加65即可


与解码类似,首先将字符范围转换为数字,然后应用算术。

好的,
A-Z
是26个字符,所以进行算术模26。然后将结果(0…25)编码为所需的字符范围,在这种情况下,只需添加65即可


与解码类似,首先将字符范围转换为数字,然后应用算术。

好的,
A-Z
是26个字符,所以进行算术模26。然后将结果(0…25)编码为所需的字符范围,在这种情况下,只需添加65即可


与解码类似,首先将字符范围转换为数字,然后应用算术。

您可以用另一个
26
填充
x
,以处理65以下26的值

console.log(((x+26-65)%26)+65);

如果您需要更多的填充,只需添加26的其他倍数。

您可以用另一个
26
填充
x
,以处理低于65的26的值

console.log(((x+26-65)%26)+65);

如果您需要更多的填充,只需添加26的其他倍数。

您可以用另一个
26
填充
x
,以处理低于65的26的值

console.log(((x+26-65)%26)+65);

如果您需要更多的填充,只需添加26的其他倍数。

您可以用另一个
26
填充
x
,以处理低于65的26的值

console.log(((x+26-65)%26)+65);

如果您需要更多的填充,只需添加26的其他倍数。

您需要一个条件来查看数字是小于65还是大于90,然后只需执行与当前对90以上的数字所做的相反的操作

var x = text.charCodeAt(i)+1;
    x = x > 90 ? ((x-65)%26)+65 : x < 65 ? (((x+65)%26)+65) : x;
    newText = newText + String.fromCharCode(x);
var x=text.charCodeAt(i)+1;
x=x>90?((x-65)%26)+65:x<65?((x+65)%26)+65):x;
newText=newText+String.fromCharCode(x);

要使其与任何数字一起工作,请使用

x = x > 90 ? x-(Math.ceil((x-90)/26)*26) : x < 65 ? x+(Math.ceil((65-x)/26)*26) : x;
x=x>90?x-(数学细胞((x-90)/26)*26):x<65?x+(数学细胞((65-x)/26)*26):x;

您需要一个条件来查看该数字是否低于65或高于90,然后只需执行与当前对超过90的数字所做的相反的操作

var x = text.charCodeAt(i)+1;
    x = x > 90 ? ((x-65)%26)+65 : x < 65 ? (((x+65)%26)+65) : x;
    newText = newText + String.fromCharCode(x);
var x=text.charCodeAt(i)+1;
x=x>90?((x-65)%26)+65:x<65?((x+65)%26)+65):x;
newText=newText+String.fromCharCode(x);

要使其与任何数字一起工作,请使用

x = x > 90 ? x-(Math.ceil((x-90)/26)*26) : x < 65 ? x+(Math.ceil((65-x)/26)*26) : x;
x=x>90?x-(数学细胞((x-90)/26)*26):x<65?x+(数学细胞((65-x)/26)*26):x;

您需要一个条件来查看该数字是否低于65或高于90,然后只需执行与当前对超过90的数字所做的相反的操作

var x = text.charCodeAt(i)+1;
    x = x > 90 ? ((x-65)%26)+65 : x < 65 ? (((x+65)%26)+65) : x;
    newText = newText + String.fromCharCode(x);
var x=text.charCodeAt(i)+1;
x=x>90?((x-65)%26)+65:x<65?((x+65)%26)+65):x;
newText=newText+String.fromCharCode(x);

要使其与任何数字一起工作,请使用

x = x > 90 ? x-(Math.ceil((x-90)/26)*26) : x < 65 ? x+(Math.ceil((65-x)/26)*26) : x;
x=x>90?x-(数学细胞((x-90)/26)*26):x<65?x+(数学细胞((65-x)/26)*26):x;

您需要一个条件来查看该数字是否低于65或高于90,然后只需执行与当前对超过90的数字所做的相反的操作

var x = text.charCodeAt(i)+1;
    x = x > 90 ? ((x-65)%26)+65 : x < 65 ? (((x+65)%26)+65) : x;
    newText = newText + String.fromCharCode(x);
var x=text.charCodeAt(i)+1;
x=x>90?((x-65)%26)+65:x<65?((x+65)%26)+65):x;
newText=newText+String.fromCharCode(x);

使它成为w