在您说这已经被问过之前,请知道我已经审查了这些:
假设我正在制作一个必须保存和解析电话号码的程序,我想确保它们以标准格式保存,因此其他程序也可以解析它们.
例如,我看到以下所有内容都是同一美国电话号码的有效表示:
1234567123-4567123 45675551234567(555) 1234567555-1234567555 123 4567555-123-4567(555)-123-4567(555) 123-4567(5) 123 45671-555-123-4567(1) 555-123-4567然后不同的国家以不同的方式表示数字:
55 1234 567 890155 12 3456 789055 123 456 789055 1234 567890555 123 456(55) 123 45675.555.123-45-67如您所见,用户可以看到有效电话号码的方式几乎是无限的(英国电话号码的维基百科页面长度接近100个打印机页面).我希望我的数据库中的所有数字都是普遍可识别的格式.据我所知,ISO没有定义的格式.电话号码有标准符号吗?
在My Angular应用程序中,我尝试使用Country标志和验证来实现国际电话号码字段.像这样相同
https://github.com/hodgepodgers/ng-intl-tel-input 及其演示网站 http://hodgepodgers.github.io/ng-intl-tel-input/
经过大量的搜索没有得到Angular的任何东西.
这个问题要求Java中的电话号码格式API让我想知道为什么这样的API似乎不存在.考虑到Apache Commons下可用的验证类的数量,我认为会包含这样的API.
我的问题是,是否有人知道可用作小型Java开源项目模型的任何语言的电话号码格式/验证库?此外,除了世界各地使用的大量不同电话号码格式外,是否有人知道这样的项目不可行的任何原因?
所以我有办法从iPhone上的地址簿中获取所有联系电话号码,但是有办法获得电话号码标签吗?例如,你可以这样做:

而且我想修改我的方法来打印出标签(例如iPhone/Home/mobile/etc).
ABAddressBookRef addressBook = ABAddressBookCreate();
CFArrayRef all = ABAddressBookCopyArrayOfAllPeople(addressBook);
CFIndex n = ABAddressBookGetPersonCount(addressBook);
for( int i = 0 ; i < n ; i++ )
{
ABRecordRef ref = CFArrayGetValueAtIndex(all, i);
NSString *firstName = (NSString *)ABRecordCopyValue(ref, kABPersonFirstNameProperty);
NSLog(@"Name %@", firstName);
ABMultiValueRef *phones = ABRecordCopyValue(ref, kABPersonPhoneProperty);
for(CFIndex j = 0; j < ABMultiValueGetCount(phones); j++)
{
NSString *phoneLabel = @""; // ???
CFStringRef phoneNumberRef = ABMultiValueCopyValueAtIndex(phones, j);
//CFRelease(phones);
NSString *phoneNumber = (NSString *)phoneNumberRef;
CFRelease(phoneNumberRef);
NSLog(@" - %@ (%@)", phoneNumber, phoneLabel);
[phoneNumber …Run Code Online (Sandbox Code Playgroud) 我有几个关于MSISDN的问题.我明白:
我需要进一步了解的是:
MSISDN号码是否在SIM卡中烧毁(存储)?如果是,是否所有提供商都确保SIM卡中有MSISDN信息?如果不是,需要澄清的是,没有编程代码可以获取MSISDN号码?
有些人建议按以下代码获取MSISDN.但如果未在设备中设置"我的电话号码",则两个代码都返回null.反过来,如果设置了它,它将返回"我的电话号码".因此,问题是:"我的电话号码"等于MSISDN?
TelephonyManager.getLine1Number(); - >适用于Android
Phone.getDevicePhoneNumber(true); - >黑莓手机
如上面的代码,返回字符串数据是从设备本身还是从SIM卡中获取的?
这是我第一次尝试制作ios应用程序.
我正在使用人物选择器向用户询问电话号码,但是当它使用下面的代码检索时,我的NSString *phoneapears如(0)111192222-2222.我来自巴西,这里正确的手机号码掩码是(01111)92222-2222(9是可选的,有些数字有其他人没有).如何修复这个面膜?或者完全删除它?
- (BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person property:(ABPropertyID)property identifier:(ABMultiValueIdentifier)identifier
{
ABMultiValueRef multiValue = ABRecordCopyValue(person, property);
CFIndex index = ABMultiValueGetIndexForIdentifier(multiValue, identifier);
NSString *phone = (__bridge NSString *)ABMultiValueCopyValueAtIndex(multiValue, index);
return NO;
}
Run Code Online (Sandbox Code Playgroud) 旧方法不再起作用:
//方式1
void *lib = dlopen("/Symbols/System/Library/Framework/CoreTelephony.framework/CoreTelephony", RTLD_LAZY);
NSString* (*getPhoneNumber)() = dlsym(lib, "CTSettingCopyMyPhoneNumber");
if (getPhoneNumber == nil) {
NSLog(@"getPhoneNumber is nil");
return nil;
}
NSString* ownPhoneNumber = getPhoneNumber();
Run Code Online (Sandbox Code Playgroud)
//方式2
extern NSString* CTSettingCopyMyPhoneNumber();
NSString *phone = CTSettingCopyMyPhoneNumber();
Run Code Online (Sandbox Code Playgroud)
相关问题:
[UPDATE]
提供的方法适用于不带JB的iOS 6.1.4和带有JB的iOS 7.1.2
感谢用户creker提示!
要获得号码,您必须使用以下方式:
1.代码
-(NSString*) getMyNumber {
NSLog(@"Open CoreTelephony");
void *lib = dlopen("/Symbols/System/Library/Framework/CoreTelephony.framework/CoreTelephony",RTLD_LAZY);
NSLog(@"Get CTSettingCopyMyPhoneNumber from CoreTelephony");
NSString* (*pCTSettingCopyMyPhoneNumber)() = dlsym(lib, "CTSettingCopyMyPhoneNumber");
NSLog(@"Get CTSettingCopyMyPhoneNumber from CoreTelephony");
if (pCTSettingCopyMyPhoneNumber == nil) {
NSLog(@"pCTSettingCopyMyPhoneNumber is nil");
return nil;
} …Run Code Online (Sandbox Code Playgroud) 如何获取J2ME应用程序中的电话号码(不是联系号码等)?属于手机中SIM卡的电话号码.
我有一个问题,我尝试的一切都行不通.我有一个电话号码数据字段,返回没有格式'3055558798'的数字,但我希望它看起来像'(305)555-8798'.我可以用这个表达式完成:
= Format(Convert.ToDouble(Fields!MyFieldName.Value), "(###)###-####")
Run Code Online (Sandbox Code Playgroud)
唯一的问题是,当返回为null时,我在空间中得到#ERROR.我发现了一个表达式摆脱了#ERROR,但仍然没有运气将它们放在一起.我必须通过我的报告来找到表达,但希望有人可以帮助我.我已经做了几个月的报道,但我仍然不太满意所有的表达方式.我只需要格式化电话号码,如果返回为空则不显示任何内容.在同一个网站上我也找到了这个表达但它不起作用所以我不知道为什么这个人说它对他有效.
=Iif (Fields!MyFieldName.Value Is Nothing, Nothing,
Format(Convert.ToDouble(Fields!MyFieldName.Value), "(###)###-####"))
Run Code Online (Sandbox Code Playgroud)
这对我不起作用,我相信语法是错误的,但我不知道要改变什么来修复它.谢谢.
我可以验证使用此正则表达式是否输入了电话号码,但它要求在输入字段中输入电话号码。我正在尝试将电话号码设置为可选。当我删除 .matchesphoneRegExp 时,它无需任何要求即可工作。我相信这与使该字段变为必填字段的正则表达式有关。但我不确定。我应该用不同的方式来做吗?谢谢
const phoneRegExp = /^((\\+[1-9]{1,4}[ \\-]*)|(\\([0-9]{2,3}\\)[ \\-]*)|([0-9]{2,4})[ \\-]*)*?[0-9]{3,4}?[ \\-]*[0-9]{3,4}?$/;
const signUpSchema = yup.object().shape({
username: yup
.string()
.min(4, "Need at least 4 characters.")
.required("Username is required"),
firstName: yup
.string()
.min(2, "Need at least 2 characters.")
.required("First name is required"),
lastName: yup
.string()
.min(2, "Need at least 2 characters")
.required("Last name is required"),
email: yup
.string()
.email()
.required("Email is required"),
phoneNumber: yup.string()
.matches(phoneRegExp, "Phone number is not valid")
.notRequired(),
password: yup
.string()
.min(6, "Password must be at least 6 characters.") …Run Code Online (Sandbox Code Playgroud) phone-number ×10
objective-c ×2
android ×1
angular ×1
blackberry ×1
formatting ×1
ios ×1
ios7 ×1
iphone ×1
java-me ×1
msisdn ×1
sim-card ×1
standards ×1
validation ×1
yup ×1