Apex - удалить специальные символы из строки, кроме «+» - PullRequest
0 голосов
/ 12 апреля 2019

В Apex я хочу удалить все специальные символы в строке, кроме «+». Эта строка на самом деле является номером телефона. Я сделал следующее.

      String sampleText = '+44 597/58-31-30';
      sampleText = sampleText.replaceAll('\\D','');
      System.debug(sampleText);

Итак, он печатает 44597583130. Но я хочу сохранить знак +, поскольку он представляет 00.

Может ли кто-нибудь помочь мне с этим?

1 Ответ

1 голос
/ 12 апреля 2019

Возможные решения

String sampleText = '+44 597/58-31-30';
// exclude all characters which you want to keep 
System.debug(sampleText.replaceAll('[^\\+|\\d]',''));

// list explicitly each char which must be replaced    
System.debug(sampleText.replaceAll('/|-| ',''));

Вывод в обоих случаях будет одинаковым

| DEBUG | + 44597583130

| DEBUG | + 44597583130

Редактировать

String sampleText = '+0032 +497/+59-31-40';
System.debug(sampleText.replaceAll('(?!^\\+)[^\\d]',''));

| DEBUG | + 0032497593140

...