Флаттер изменить строку, если условие

#flutter #dart

Вопрос:

Я открываю URL-адрес WhatsApp с текстом и номером.

Проблема в том, что у меня есть 2 типа номеров

  923323789222 amp; 03323789222
 

Whatsapp не открывает номер, начинающийся с 0, поэтому мне нужно сделать следующее: если у номера 0, замените его на 92

     var url ='whatsapp://send?phone= 923323789222amp;text=Apna ${widget.data['selererName']} ko ${Ggive.toString()} Rupees dene hein';
 

в телефоне, когда я прохожу с 92, он работает нормально, поэтому мой вопрос в том, как я могу заменить, если мой номер начинается с 0 и заменяется на 92

Ответ №1:

Вы можете просто проверить, есть ли у вашего номера 0 в начале, просто замените его на 92, а если он не начинается с 0, то останется прежним.

                 String num = yournumber.toString();
                if(num[0] == "0"){
                  print('have zero');
                   String numb2 = num.substring(0, 0)   " 92"   num.substring(1);
                   print(numb2);
                   num = numb2;
                }
                var url ='whatsapp://send?phone=${num}amp;text=Apna ${widget.data['selererName']} ko ${Ggive.toString()} Rupees dene hein';
                print(url);
 

Ответ №2:

Просто используйте приведенный ниже код для замены определенной строки.

 var url ='whatsapp://send?phone= 923323789222amp;text=Apna ${widget.data['selererName']} ko ${Ggive.toString()} Rupees dene hein';

url.replaceAll('phone=0', 'phone= 92');
 

Вы также можете использовать регулярное выражение для замены строк.

Ответ №3:

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

 String formatPhoneNumber(String phoneNumber) {
 if (phoneNumber.length < 1) return '';
 
 // if the phone number doesn't start with 0,
 // it is already formatted and we return in the
 // way it is.
 if (phoneNumber[0]  != '0') return phoneNumber;
 
 // if it starts with 0 then we replace the 0 with  92
 // and return the new value.
 return phoneNumber.replaceFirst(RegExp('0'), ' 92');
}
 

Использование:

 print(formatPhoneNumber(' 923323789222'));
// OUTPUT:  923323789222

print(formatPhoneNumber('03323789222'));
// OUTPUT:  923323789222