在我的练习中,我应该验证电话号码,其中正确的是:
1234567890
123-456-7890
123.456.7890
(123)456-7890
(123) 456-7890
456-7890
Run Code Online (Sandbox Code Playgroud)
我试过了[(]?[0-9][0-9][0-9][).-]? ?[0-9][0-9][0-9][.-]?[0-9][0-9][0-9][0-9],但它似乎也接受了类似的东西(123.456-7890.我怎么能处理这个?或者我应该采取完全不同的方式?
以下是一些无效的电话号码:
123-45-6789
123:4567890
123/456-7890
Run Code Online (Sandbox Code Playgroud) 我需要一个RegEx对必须符合以下格式的瑞士电话号码进行验证(使用Laravel,php框架):
+41 11 111 11 11
“ +41”部分必须完全是这种方式,而其余部分(11 111 11 11)可以是1到9之间的任何数字。
调用RegEx的函数如下所示:
$regex = "thisIsWhereINeedYourHelp";
if (preg_match($regex, $value)) {
return true;
}
return true;
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助!
由于不推荐使用PhoneNumberUtils,如果两个电话号码足够相同,可以用于来电显示.我的意思是不同的格式+ 44xxxxxxxxxx,0xxxxxxxxxx
可能重复:
美国电话号码验证
我需要验证美国的电话号码.它可以采用以下格式:
xxx-xxx-xxxx
(xxx) xxx xxxx
(xxx)-xxx-xxxx
xxxxxxxxxx
Run Code Online (Sandbox Code Playgroud)
但它不应该
xxx-xxx-xxxx-
-xxx-xxx-xxxx
Run Code Online (Sandbox Code Playgroud)
它应该接受数字,连字符,空格和括号.
目前我用
^\[0-9 \-\. ]+$
Run Code Online (Sandbox Code Playgroud)
它不会在开头或结尾验证短划线.
当我遇到这个问题时,我正在研究我的android项目
我希望这将像"0345303709"7这样的字符串转换为整数,但我不断得到NumberFormatException.
我在这里搜索了所有问题,但没有找到解决我问题的方法.
以下是我的Android代码:
String edit_cell=cellnumber.getText().toString();
try
{
if(cellnumber.getText().length()==11 && TextUtils.isEmpty(edit_cell)!=true && edit_cell!=null)
{
cell=Integer.valueOf("03462651882");
}
else
{
Toast.makeText(this, "Invalid CellNumber\n Write CellNumber like this Format:\nNetworkCode Followed by your Number\n",Toast.LENGTH_LONG).show();
Toast.makeText(this, "eg:03213213214",Toast.LENGTH_LONG).show();
}
}
catch(Exception ex)
{
Toast.makeText(this, "Invalid cellnumber\n Write cellNumber line this format:\n Network code followed by your number\n",Toast.LENGTH_LONG).show();
Toast.makeText(this, "eg:03213213214",Toast.LENGTH_LONG).show();
}
Run Code Online (Sandbox Code Playgroud)
我使用的是eclipse Helios IDE和Android版本是2.2 api 8
我使用以下正则表达式来验证印度的电话号码.
我想在11位数的手机之前选择+88或01.
这是我正在使用的:
string mobileNumber = "+8801000000000";
if (new Regex(@"^([01]|\+88)?\d{11}").IsMatch(mobileNumber)){
MessageBox.Show("Mobile number is valide", "All information is required", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
}
else{
MessageBox.Show("Mobile number is not valide", "All information is required", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
Run Code Online (Sandbox Code Playgroud)
我该怎么做?
UPDATE
如果我写手机没有.在此之前01,超过11位数字通知验证mgs(Not valid mobile no.!).好吧,我使用过,当13位数时失败.它错误地改变了验证.
这是我的代码:
<input type="text" placeholder="Enter bKash wallet number"
class="form-control" ng-model="BkashWalletNo" ng-disabled="AutoConfirmed"
name="BkashWalletNo" ng-pattern="/^(?:\+88|01)?\d{11}\r?$/" />
<p class="help-block" ng-show="form.BkashWalletNo.$error.pattern">Not valid mobile no.!</p>
Run Code Online (Sandbox Code Playgroud) 我正在开发一个可以使用电话号码的应用程序,但我在使用正则表达式查找字符串中的电话号码时遇到了问题.
我的应用程序查看联系人的电话号码,该号码可以是:
(短划线" - ")
XXXX-XXXX
XXXXX-XXXXX
(YY)XXXX-XXXX
(YY)XXXXX-XXXX
+ ZZ(YY)XXXX-XXXX
+ ZZ(YY)XXXXX-XXXX
(不带破折号)
XXXXXXXX
XXXXXXXXX
(YY) XXXXXXXX
(YY)XXXXXXXXX
+ ZZ(YY)XXXXXXXX
+ ZZ(YY)XXXXXXXXX
基于上述所有可能性,我编写了以下代码:
let range = telefone.rangeOfString("[0-9]{4,5}-[0-9]{4}", options:.RegularExpressionSearch)
let range2 = telefone.rangeOfString("[0-9]{9}$", options:.RegularExpressionSearch)
var found: String?
if range != nil{
found = telefone.substringWithRange(range!)
}else if range2 != nil{
found = telefone.substringWithRange(range2!)
}
print(found)
Run Code Online (Sandbox Code Playgroud)
range是找到phoneNumbers的正则表达式(带短划线" - ")
range2是为电话号码提供资金的正则表达式(不带破折号)
使用此代码,我只获得电话号码,没有国家代码或区号.
问题是,当我使用
+ ZZ(YY)XXXXX-XXXX 等电话号码测试时,此代码在找到的变量上返回nil
有人可以帮我找到另一种写正则表达式的方法,只获取包含所有联系电话号码的字符串的"X"值吗?
更新:
我注意到上面的代码,变量范围,返回null
var telefone = "+42 43 23123-2221"
let range = telefone.rangeOfString("\\d{4,5}\\-?\\d{4}", …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"时会出错.
可能重复:
用于电话号码验证的全面正则表达式
我非常接近需要的完整正则表达式。但是我似乎无法获得允许的可选空白。
正则表达式
^(\(?\d{3}\)?\-?\d{3}\-?\d{4})$
Run Code Online (Sandbox Code Playgroud)
要求-仅这四个
111-111-1111-工程
(111)111-1111-作品
(111)111-111-无法捕获
1111111111-工程
如何在括号后面添加可选空格?