15
var str = name.toUpperCase();
var ch = new Array();
ch = str.split('');

for(var i=0;i<7;i++)
{
  if(ch = null) {
    result_code.replace(
      pos.toString()+pos.toString()+pos.toString()+pos.toString(),
      "FFFF");
  } else {
    var temp = parseInt(ch[i]);
    var temp_integer = 64;
    if(temp<=122 & temp>=97) {
      var pos = i+1;
      result_code.replace(
        pos.toString()+pos.toString()+pos.toString()+pos.toString(),
        (temp - temp_integer)+40);
    }
  }
}

此代码在此行创建错误result_code.replace(pos.toString()+pos.toString()+pos.toString()+pos.toString(), (temp - temp_integer)+40);

带下划线的信息是这个部分(temp - temp_integer)+40

显示的错误是Argument type Number is not assignable to parameter type String|Function

这段代码有什么问题?我正在使用 WebStorm。我可能只是犯了一个愚蠢的错误。提前致谢!

4

2 回答 2

20

replace方法接受字符串或函数作为第二个参数。将您的值转换为字符串:((temp - temp_integer)+40).toString().

于 2013-06-28T01:13:21.283 回答
3
(temp - temp_integer)+40

是一个数值,replace需要一个字符串。只需使用:

(temp - temp_integer)+40+""

假设您想要数字的字符串表示形式(例如,65变为"65")。如果您想要该代码点处的字符65(变成"A"),您应该考虑使用String.fromCharCode().

于 2013-06-28T01:13:29.217 回答