Использование JavaScript parseInt в конце строки - PullRequest
6 голосов
/ 11 января 2011

Я знаю, что

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

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

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

Ответы [ 6 ]

19 голосов
/ 11 января 2011
parseInt("column5".slice(-1), 10);

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

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

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

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

3 голосов
/ 11 января 2011

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

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 по умолчанию слишком magic, чтобы доверять.

Подробнее см. Здесь:

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

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

2 голосов
/ 11 января 2011

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

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

return precedingString + number;
1 голос
/ 11 января 2011
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

0 голосов
/ 11 января 2011

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

0 голосов
/ 11 января 2011
  1. Разделить слово и число с помощью RegEx.

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

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

...