Использование JavaScript parseInt в конце строки

Я знаю это

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

вернет число, если первые символы в строке являются числовыми, но как я могу сделать это в JavaScript, если у меня есть строка типа "column5" и я хочу увеличить ее до следующей ("column6")?

Количество цифр в конце строки является переменным.

6 ответов

Решение
parseInt("column5".slice(-1), 10);

Вы можете использовать -1 или -2 для однозначных чисел соответственно.

Если вы хотите указать любую длину, вы можете использовать следующее, чтобы вернуть цифры:

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

Вышеуказанное будет работать для любой длины чисел, если строка заканчивается одним или несколькими числами

Выделите число из текста, проанализируйте его, увеличьте, а затем повторно объедините. Если предыдущая строка хорошо известна, например, "столбец", вы можете сделать что-то вроде этого:

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

return precedingString + number;

Попробуй это:

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

это будет конвертировать строки как text10 в text11, TxT1 в Txt2и т. д. Работает с длинными числами в конце.

Добавил radix к вызову parseInt, так как значение parseInt по умолчанию слишком magic быть доверенным.

Смотрите здесь для деталей:

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

в основном это будет преобразовывать что-то вроде text010 в text9 что не хорошо;).

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

  1. Разделите слово и число, используя RegEx.

  2. используя parseInt() увеличивать число.

  3. Добавить к слову.

Просто попробуйте прочитать строку char за char, проверив ее ASCII-код. Если его от 48 до 57, вы получили свой номер. Попробуйте с функцией charCodeAt. Затем просто разбить строку, увеличить число и все готово.

Другие вопросы по тегам