8

我知道

parseInt(myString, 10) // "Never forget the radix"  

如果字符串中的第一个字符是数字,将返回一个数字,但是如果我有一个像“column5”这样的字符串并且想要将它增加到下一个(“column6”),我该如何在 JavaScript 中执行此操作?

字符串末尾的位数是可变的。

4

6 回答 6

20
parseInt("column5".slice(-1), 10);

您可以分别将 -1 或 -2 用于一到两位数字。

如果要指定任何长度,可以使用以下命令返回数字:

parseInt("column6445".match(/(\d+)$/)[0], 10);

以上将适用于任何长度的数字,只要字符串以一个或多个数字结尾

于 2011-01-11T15:51:55.910 回答
4

从文本中拆分数字,解析它,增加它,然后重新连接它。如果前面的字符串是众所周知的,例如“column”,你可以这样做:

var precedingString = myString.substr(0, 6); // 6 is length of "column"
var numericString = myString.substr(7);
var number = parseInt(numericString);
number++;

return precedingString + number;
于 2011-01-11T15:52:45.367 回答
3

试试这个:

var match = myString.match(/^([a-zA-Z]+)([0-9]+)$/);
if ( match ) {
  return match[1] + (parseInt(match[2]) + 1, 10);
}

这将转换字符串,如text10to text11TxT1toTxt2等。最后使用长数字。

将基数添加到 parseInt 调用,因为默认的 parseInt 值太magic不可信。

有关详细信息,请参见此处:

http://www.w3schools.com/jsref/jsref_parseInt.asp

基本上它会将类似的东西转换成text010不好text9的东西;)。

于 2011-01-11T15:52:43.973 回答
1
var my_car="Ferrari";
var the_length=my_car.length;
var last_char=my_car.charAt(the_length-1);
alert('The last character is '+last_char+'.');

归功于http://www.pageresource.com/jscript/jstring1.htm

然后只增加 last_char

于 2011-01-11T15:51:08.857 回答
0
  1. 使用 RegEx 拆分单词和数字。

  2. 使用 parseInt() 增加数字。

  3. 附加到单词。

于 2011-01-11T15:53:34.790 回答
0

试着逐个字符地读取字符串,检查它的 ASCII 码。如果它从 48 到 57 你得到你的号码。尝试使用 charCodeAt 函数。然后只需拆分字符串,增加数字并完成。

于 2011-01-11T15:55:01.067 回答