可以使用如下的正则表达式进行验证:
^(+?62|0)[1-9][0-9]{7,11}$
该正则表达式限制了电话号码的起始,排除了超过一个前导零的情况。其中,^+?62|0 表示电话号码的起始,+62 代表印度尼西亚电话区号,0 表示国内电话号码,[1-9][0-9]{7,11} 表示电话号码的主体部分。该部分要求第一位为非零数字,其它位为数字,长度在7-11之间。
以下是示例代码:
import re
def validate_phone_number(phone_number):
pattern = r'^(\+?62|0)[1-9][0-9]{7,11}$'
if re.match(pattern, phone_number):
return True
else:
return False
print(validate_phone_number('+6281234567890')) # True
print(validate_phone_number('081234567890')) # True
print(validate_phone_number('0823456')) # False
print(validate_phone_number('0062812345678')) # False