Удалить определенные символы из строки в Javascript

17

Я создаю форму для поиска деталей запроса поддержки в нашей системе ведения журнала вызовов.

Условным вызовам присваивается номер, например F0123456 , который будет вводиться пользователем, но запись в базе данных будет 123456 . У меня есть следующий код для сбора данных из формы перед отправкой его с помощью jQuery ajax. Как бы я удалял ведущую «F0» из строки, если она существует?

$('#submit').click(function () {        

var rnum = $('input[name=rnum]');
var uname = $('input[name=uname]');

var url = 'rnum=' + rnum.val() + '&uname=' + uname.val();
    
задан AlphaPapa 01.05.2012 в 11:51
источник
  • Если это всегда первые два символа, с substr. В противном случае вам нужно лучше задать вопрос. –  Jon 01.05.2012 в 11:54

3 ответа

35

Просто замените его ничем:

var string = 'F0123456'; // just an example
string.replace(/^F0+/i, ''); '123456'
    
ответ дан Mathias Bynens 01.05.2012 в 11:54
источник
  • Возможно, будет немного вводить в заблуждение, чтобы включить это +. Кроме того, поскольку это замена «первого экземпляра», я бы склонялся к замене не-regex (но это не очень важно) или substr –  musefan 01.05.2012 в 12:06
  • Это сработало хорошо, мне просто пришлось добавить i после reg exp, чтобы он проигнорировал случай. –  AlphaPapa 01.05.2012 в 12:13
  • @AlphaPapa Я не знал, что вы хотите, чтобы это было нечувствительным к регистру. Добавлен ответ и добавлен флаг. @musefan, я не знал, хочет ли OP опустить только первый ведущий нуль или все ведущие нули. –  Mathias Bynens 01.05.2012 в 12:26
  • @MathiasBynens: Я думаю, вам следует прокомментировать +. ЕСЛИ номер случая будет 000001, это может привести к ошибкам, с которыми работает OP can not. Конечно, все зависит от точной реализации системы –  musefan 01.05.2012 в 12:46
5

Другой способ сделать это:

rnum = rnum.split("F0").pop()

Он разбивает строку на два: ["", "123456"] , затем выбирает последний элемент

    
ответ дан paulslater19 01.05.2012 в 11:54
источник
  • На самом деле первым элементом массива будет пустая строка, а не «F0», –  musefan 01.05.2012 в 12:04
  • @musefan ах да! благодаря! –  paulslater19 01.05.2012 в 12:29
  • Какое изящное решение! (y) (y) –  Khateeb321 27.02.2018 в 07:24
3

Решение Regexp:

ref = ref.replace(/^F0/, "");

простое решение:

if (ref.substr(0, 2) == "F0")
     ref = ref.substr(2);
    
ответ дан Bergi 01.05.2012 в 11:55
источник