Javascript 将字母替换为整数,并将“-”(破折号)替换为整数

Javascript 将字母替换为整数,并将“-”(破折号)替换为整数,javascript,regex,Javascript,Regex,我目前正在使用以下JavaScript代码: concatedSubstring.replace(/\//g, '-').replace(/[A-Za-z]/g, function(c){ return c.toUpperCase().charCodeAt(0)-64; }); …以1234/A、22/B等格式进行输入,并输出1234-1、22-2等 也就是说,/变成-,字母变成A=1、B=2等的整数 我想对此进行更改,这样,如果输入不包含/,那么输出仍然会在/应该出现的位置插入-。

我目前正在使用以下JavaScript代码:

concatedSubstring.replace(/\//g, '-').replace(/[A-Za-z]/g, function(c){
    return c.toUpperCase().charCodeAt(0)-64; 
});
…以1234/A、22/B等格式进行输入,并输出1234-1、22-2等

也就是说,/变成-,字母变成A=1、B=2等的整数

我想对此进行更改,这样,如果输入不包含/,那么输出仍然会在/应该出现的位置插入-。也就是说,输入1234A应该输出1234-1,或者22B应该输出22-2,等等。

您也可以。替换/[0-9][a-zA-Z]/g,$1-$2:这将字母旁边的数字转换为numberDASHletter,使用反向引用$1表示第一组括号中的任何内容,$2表示第二组括号中的任何内容。

您也可以。替换/[0-9][a-zA-Z]/g,$1-$2:使用反向引用将字母旁边的数字转换为数字字母$1表示第一组括号中的任何内容,2表示第二组括号中的任何内容。

str=1234/B;或str=1234B

str.replace/\/[A-Z]|[A-Z]/g,-+parseIntstr.charCodeAtstr.indexOfstr.match/[A-Z]/g-64

str=1234/B;或str=1234B

str.replace/\/[A-Z]|[A-Z]/g,-+parseIntstr.charCodeAtstr.indexOfstr.match/[A-Z]/g-64

即使输入包含多个数字/字母模式,以下内容也应适用:

var input = "1234/B 123a 535d";

var replaced = input.replace(/(\d+)(\/?)([A-Za-z])/g, function(m,p1,p2,p3) {
   return p1 + "-" + (p3.toUpperCase().charCodeAt(0)-64);
});

alert(replaced); // "1234-2 123-1 535-4"
正则表达式:

/(\d+)(\/?)([A-Za-z])/g
…将匹配一个或多个数字,后跟一个可选的正斜杠,后跟一个字母,捕获这些部分中的每个部分供以后使用


如果您这样做,它将被调用,并带有完全匹配的参数,我会忽略它以满足您的要求,也会调用我使用的任何子匹配。

即使输入包含一个以上的数字/字母模式,以下内容也应适用:

var input = "1234/B 123a 535d";

var replaced = input.replace(/(\d+)(\/?)([A-Za-z])/g, function(m,p1,p2,p3) {
   return p1 + "-" + (p3.toUpperCase().charCodeAt(0)-64);
});

alert(replaced); // "1234-2 123-1 535-4"
正则表达式:

/(\d+)(\/?)([A-Za-z])/g
…将匹配一个或多个数字,后跟一个可选的正斜杠,后跟一个字母,捕获这些部分中的每个部分供以后使用


如果您这样做,它将被调用为完全匹配的参数,我忽略了您的要求,也忽略了我使用的任何子匹配。

所以1234B应该变成1234-2您的问题有1234-1?对不起,我的错误1234B必须替换为1234-2您知道英文字母表的意思吗?不是你使用它的方式。有拉丁字母表、希腊字母表、腓尼基字母表等。虽然从语法上说你是对的,我应该使用单词字母,但在那一刻,我想到的第一件事是字母表,因为英语不是我的母语。但我想我的问题解释了我想做什么。所以1234B应该变成1234-2。你的问题有1234-1?对不起,我的错误1234B必须替换为1234-2。你知道英文字母表的意思吗?不是你使用它的方式。有拉丁字母表、希腊字母表、腓尼基字母表等。虽然从语法上说你是对的,我应该使用单词字母,但在那一刻,我想到的第一件事是字母表,因为英语不是我的母语。但是我想我的问题解释了我要做的事情。这不就是问题中的代码已经做过的吗?OP想要在输入上插入连字符,即使没有正斜杠,比如1234B.str=1234B;str.replace/\/[A-z]\[A-z]/g,-+parseIntstr.charCodeAtstr.indexOfstr.match/[A-z]/gi-64注意A-z范围还包括一些非字母字符。这不就是问题中的代码所做的吗?OP想要在输入上插入连字符,即使没有正斜杠,比如1234B.str=1234B;str.replace/\/[A-z]|[A-z]/g,-+parseIntstr.charCodeAtstr.indexOfstr.match/[A-z]/gi-64注意A-z范围还包括一些非字母字符。