Замена второй части строки с помощью javascript и replace () - PullRequest
2 голосов
/ 07 января 2011

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

THIS IS A STRING   2387263-1111  STRING CONTINUES

станет:

THIS IS A STRING   2387263  STRING CONTINUES

Могу ли я использовать это с Javascript и заменить ()?

Спасибо, Джиди

Ответы [ 4 ]

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

Вы можете сделать:

str = str.replace(/(\d+)-\d+/,'$1');

Посмотреть

, который заменяет группу цифр, за которой следует дефис, за которым следует группа цифр, первой группой цифр.

Если вы хотите заменить несколько вхождений такого шаблона, просто используйте модификатор g как:

str = str.replace(/(\d+)-\d+/g,'$1');
2 голосов
/ 07 января 2011

НОВЫЙ ОТВЕТ -

Да, в моем случае, по моему мнению, сначала вам нужно сопоставить всю строку «2387263-1111», используя регулярное выражение, а затем удалить эту часть, затем «-», а затем заменитьрезультат в исходной строке.

Проверьте ответ от codaddict .Мой был бы почти таким же, но его ответ кажется более подходящим.

СТАРЫЙ ОТВЕТ: -

Зачем заменять?Просто используйте split и получите первое значение.

var str = "2387263-1111";
var output = str.split("-")[0];
1 голос
/ 09 января 2011

Не совсем новый ответ, просто дополнение к codaddict . Не знаю, регулярное выражение JScript
все это хорошо, но я полагаю, что он использует расширенные регулярные выражения (если нет, забудьте об этом).

Если вам нужна проверка на граничных условиях, вы можете сделать что-то вроде этого:
str = str.replace( /((^|\s)\d+)-\d+(?=\s|$)/g, '$1' );

Это помешало бы сопоставить вещи такого типа:
A STRING 2387263-1111STRING CONTINUES
A STRING2387263-1111 STRING CONTINUES
A STRING2387263-1111STRING CONTINUES

1 голос
/ 07 января 2011

Пользователь RegExp функция JavaScript

str = str.replace(new RegExp("-[0-9]+"), " ");
...