if((phone.length() > 10 &&
((phone.contains("+1" + "((\\\\d{3}-)){1,2}\\\\d{4}"))
|| (phone.contains("+966" + "d{9}"))))
|| ((phone.length() == 10) &&
!(phone.contains("(") && !(phone.contains(")") &&
!(phone.contains("-")))))) //phone doesnt contain special characters if its a saudi no.
{
....
}
else {
....
}
Привет всем :) Я пытаюсь создать код, который проверяет следующие форматы телефонных номеров и ничего больше:Используйте регулярное выражение для подтверждения номера телефона?
- + 9665xxxxxxxx
- 05xxxxxxxx
- +1 (ххх) ххх -xxxx
- + 1xxxxxxxxxx
- XXX-XXX-XXXX
Я попытался сделать это в коде выше, где номер телефона представлен как «телефон». Однако я думаю, что я сделал это неправильно, особенно в регулярном выражении. Может ли кто-нибудь сказать мне, есть ли более простой способ сделать это? Или упрощенная версия кода? Было бы проще, если бы я использовал серию операторов if()? Мне жаль, что я очень новичок в java, поэтому я уверен, что сделал что-то неправильно.
Когда вы говорите * Validate *, вы имеете в виду, что номер просто должен соответствовать одному из этих пяти шаблоны, которые считаются действительными, или же он должен представлять фактический, подлинный номер телефона? Один сложнее, чем другой – JonK
@JonK, что вы подразумеваете под второй частью? потому что я просто имел в виду, что он должен был вписаться в шаблон –