在字符串末尾使用 JavaScript 的 parseInt

发布于 2024-10-11 14:37:37 字数 217 浏览 3 评论 0原文

我知道

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

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

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

I know that

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

will return a number if the first characters in the string are numerical, but how can I do this in JavaScript if I have a string like "column5" and want to increment it to the next one ("column6")?

The number of digits at the end of the string is variable.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

ら栖息 2024-10-18 14:37:38
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

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+'.');

Credit to http://www.pageresource.com/jscript/jstring1.htm

Then just increment last_char

梦冥 2024-10-18 14:37:38
  1. 使用 RegEx 拆分单词和数字。

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

  3. 附加到单词。

  1. Split the word and number using RegEx.

  2. using parseInt() increment the number.

  3. Append to the word.

蓝海 2024-10-18 14:37:38

只需尝试逐字符读取字符串,检查其 ASCII 代码。如果是从 48 到 57,您就得到了您的号码。尝试使用 charCodeAt 函数。然后只需分割字符串,增加数字即可完成。

Just try to read string char by char, checking its ASCII code. If its from 48 to 57 you got your number. Try with charCodeAt function. Then just split string, increment the number and its done.

歌枕肩 2024-10-18 14:37:37
parseInt("column5".slice(-1), 10);

您可以分别使用 -1 或 -2 表示一到两位数字。

如果要指定任意长度,可以使用以下代码返回数字:

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

上面的代码适用于任意长度的数字,只要字符串以一个或多个数字结尾

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

You can use -1 or -2 for one to two digit numbers, respectively.

If you want to specify any length, you can use the following to return the digits:

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

The above will work for any length of numbers, as long as the string ends with one or more numbers

就像说晚安 2024-10-18 14:37:37

从文本中分割数字,解析它,递增它,然后重新连接它。如果前面的字符串是众所周知的,例如“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;

Split the number from the text, parse it, increment it, and then re-concatenate it. If the preceding string is well-known, e.g., "column", you can do something like this:

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

return precedingString + number;
季末如歌 2024-10-18 14:37:37

试试这个:

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

这会将 text10 等字符串转换为 text11,将 TxT1 转换为 Txt2 等。适用于长数字在最后。

向 parseInt 调用添加了基数,因为默认的 parseInt 值太神奇,不可信。

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

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

基本上它会将 text010 之类的内容转换为 text9 ,这不好;)。

Try this:

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

this will convert strings like text10 to text11, TxT1 to Txt2, etc. Works with long numbers at the end.

Added the radix to the parseInt call since the default parseInt value is too magic to be trusted.

See here for details:

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

basically it will convert something like text010 to text9 which is not good ;).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文