以下正则表达式不适用于最多允许15位数的国际电话号码:
^[a-zA-Z0-9-().\s]{10,15}$
Run Code Online (Sandbox Code Playgroud)
需要调整什么?
我有一个用户输入单元格编号的UI,数字存储在字符串变量中,然后存储到数据库中.
我想验证字符串以检查字符串是否不包含任何字符.
我怎么做?
下面是字符串代码.
EditText editText3 = (EditText) this.findViewById(R.id.editText2);
setNum = editText3.getText().toString(); //setNum would contain something link 8081124589
Run Code Online (Sandbox Code Playgroud) 我使用以下代码验证电话号码.要求是电话号码应在10-25个字符之间,应包括hypen( - ),句点(.),括号().
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class ValidatePhoneNumber {
public static void main(String[] argv) {
String phoneNumber = "6058.8()6-05888,9994567";
System.out.println(phoneNumber.length());
//String sPhoneNumber = "605-88899991";
//String sPhoneNumber = "605-888999A";
String regex = "^[0-9.()-]{10,25}$";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(phoneNumber);
if (matcher.matches()) {
System.out.println("Phone Number Valid");
} else {
System.out.println("Phone Number must be in the form XXX-XXXXXXX");
}
}
}
Run Code Online (Sandbox Code Playgroud)
我检查了验证及其工作正常,我想添加一个空白字符"\ s",以便在电话号码之间也可以有空格.但是在正则表达式中添加"\ s"时会出错.
可能重复:
用于电话号码验证的全面正则表达式
什么是正则表达式
xxx-xxx-xxxx
or
(xxx)xxx-xxxx
Run Code Online (Sandbox Code Playgroud)
我可以为第一个创建正则表达式
/^\d{3}-\d{3}-\d{4}$/
Run Code Online (Sandbox Code Playgroud)
但如何在此添加规则,以便它还可以处理第二个?
我看到很多解决方案来验证Regex的电话号码...但我想在我的电话号码中有一些字符,+31(0)12例如.
如果你有值的字符串+31(0)12-1234567.这是电话号码的正确表示法.你怎么能用Regex验证?
我试过这个:
Regex phonePattern = new Regex(@"\+\d{3}?(\0)\d*\-\d*");
Run Code Online (Sandbox Code Playgroud)
我错了什么?
其他例子是:
+31(0)6-12345678或+31(0)123-123456
我需要在Python中对所有美国和国际电话号码进行非常基本的电话号码验证和格式化.这是我到目前为止所拥有的:
import re
def validate(number):
number = re.compile(r'[^0-9]').sub('', number)
if len(number) == 10:
# ten-digit number, great
return number
elif len(number) == 7:
# 7-digit number, should include area code
raise ValidationError("INCLUDE YOUR AREA CODE OR ELSE.")
else:
# I have no clue what to do here
def format(number):
if len(number) == 10:
# basically return XXX-XXX-XXXX
return re.compile(r'^(\d{3})(\d{3})(\d{4})$').sub('$1-$2-$3', number)
else:
# basically return +XXX-XXX-XXX-XXXX
return re.compile(r'^(\d+)(\d{3})(\d{3})(\d{4})$').sub('+$1-$2-$3-$4', number)
Run Code Online (Sandbox Code Playgroud)
我的主要问题是我不知道国际电话号码是如何工作的.我假设它们只是10位数字,\d+前面有国家代码.这是真的?
我是Ruby on Rails的新手,正在寻找验证电话号码为xxx-xxx-xxxx的任何建议.感谢任何建议.我的phone_number列类型是一个字符串.谢谢!
我目前正在构建一个聊天框,并希望对用户发送的内容进行一些快速的客户端验证。我希望能够检测用户是否在消息中发送了电话号码(以尽可能多的格式,但一般美国格式就可以)并将其替换为井号(#)。我已经为电子邮件实现了这样的功能:
var message = 'Hi. This is my email: foo@bar.com. This is my number: (970)-555-7595.';
var emailExp = /([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9._-]+)/img;
// prints: Hi. This is my email: *********. This is my number: (970)-555-7595
console.log(message.replace(emailExp, '*********'));
Run Code Online (Sandbox Code Playgroud)
我希望它看起来像这样:
var message = 'Hi. This is my email: foo@bar.com. This is my number: (970)-555-7595.';
var emailExp = /([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9._-]+)/img;
var phoneExp = SOME_CRAZY_PHONE_REGEX;
// prints: Hi. This is my email: *********. This is my number: ##########
console.log(message.replace(emailExp, '*********').replace(phoneExp, ##########));
Run Code Online (Sandbox Code Playgroud)
我有什么办法可以完成这个任务吗?我需要它来查找字符串中每个电话号码的所有实例,并将它们替换为井号。该表达式不必太疯狂,但我希望它能够匹配大多数通用的美国格式。
我确实做了一些寻找模式,但大多数都验证了完整的字符串是电话号码。我正在尝试查找并替换字符串中的所有电话号码。谢谢
编辑
我不想改进我的电子邮件模式。只是在这种情况下适用的电话号码模式:)
我想编写一个正则表达式来匹配以下格式的电话号码,即
1- 没有国家代码 9999999999
2 - 带 1 位国家代码 +19999999999
3 - 带国家代码和 () +1(999)9999999
4 - 国家代码 () 和 - +1(999)-999-9999
我写了一个匹配条件 2 但在 1,3 和 4 中失败的正则表达式。
^[\+]?[(]?[0-9]{3}[)]?[-\s\.]?[0-9]{3}[-\s\.]?[0-9]{4,6}$
Run Code Online (Sandbox Code Playgroud)
一旦我在 + 号后面加上 () 和 - 我的正则表达式停止工作。
我该如何解决?我不是正则表达式专家,而是通过尝试通过谷歌搜索获得的不同模式来组装我的正则表达式。
任何帮助,将不胜感激。
regex ×6
validation ×5
javascript ×3
phone-number ×3
android ×1
c# ×1
forms ×1
java ×1
php ×1
python ×1
string ×1