Lấy mã quốc gia từ số điện thoại javascript

Sử dụng hàm tạo Intl.DisplayNames() để lấy tên quốc gia từ mã quốc gia, e. g. new Intl.DisplayNames(['en'], {type: 'region'}).of('US'). Phương thức of() trên đối tượng được trả về lấy một mã làm tham số và trả về một chuỗi dựa trên ngôn ngữ được cung cấp

quốc tế. Hàm tạo DisplayNames() trả về một đối tượng mà chúng ta có thể sử dụng để

  • dịch mã vùng thành tên quốc gia
  • dịch mã ngôn ngữ sang tên của ngôn ngữ
  • dịch mã tiền tệ sang tên hiển thị của tiền tệ

Tham số đầu tiên mà hàm tạo Intl.DisplayNames() lấy là một chuỗi chứa thẻ ngôn ngữ BCP 47 hoặc một mảng các chuỗi đó

Tham số thứ hai là một đối tượng options

Bạn có thể đọc về tất cả các thuộc tính có sẵn trên đối tượng options trong tài liệu MDN

quốc tế. Tên hiển thị. Phương thức of() lấy mã quốc gia làm tham số và trả về một chuỗi dựa trên ngôn ngữ và các tham số được cung cấp khi khởi tạo đối tượng Intl.DisplayNames

Nếu bạn cần tên quốc gia bằng một ngôn ngữ khác, hãy thay đổi ngôn ngữ khi tạo đối tượng

Đây là một ví dụ cho thấy cách lấy tên ngôn ngữ từ mã ngôn ngữ

Chúng tôi đã thay đổi giá trị của thuộc tính type trong đối tượng options và lấy tên hiển thị cho mã ngôn ngữ

Bạn cũng có thể sử dụng phương pháp này để chuyển đổi mã tiền tệ thành tên hiển thị của tiền tệ cho ngôn ngữ cụ thể

Chúng tôi đặt thuộc tính type thành new Intl.DisplayNames(['en'], {type: 'region'}).of('US')0 và nhận tên hiển thị của các loại tiền tệ dựa trên ngôn ngữ được cung cấp

Nhìn bề ngoài, tôi có thể nói rằng chúng trông hơi giống các số của Vương quốc Anh, ngoại trừ việc khi đó số 1334 sẽ không hợp lệ và trên thực tế, không có số nào đủ dài để trở thành số của Vương quốc Anh vì Vương quốc Anh đã tiêu chuẩn hóa 11 chữ số cho cả hai . (Quay lại quan điểm của tôi về định dạng chính xác)

Tuy nhiên, hãy giả sử rằng tập dữ liệu chính xác như vẻ ngoài của nó (i. e. dữ liệu giả) và vì lợi ích của bản trình diễn của tôi, chúng là các số của Vương quốc Anh trừ khi có quy định khác

Để phân tích số điện thoại và lấy mã quốc gia từ chúng, bạn cần có thông tin sau.
(1) Danh sách tất cả các mã quay số quốc tế hiện có
(2) Kiến thức về định dạng số điện thoại địa phương
(3) .
(4) … well… some other stuff could be added depending on how robust you want the solution to be, but I’ll go with these three for demo purposes.

Lấy từng thứ đó…

(1) Tôi đã rất ngạc nhiên khi không thể nhanh chóng tìm thấy một danh sách dễ tải xuống (e. g. csv) của mã quốc tế. Tôi đã tìm thấy rất nhiều liên kết và bảng html đầy hứa hẹn, nhưng rất ít về cách tải xuống có thể sử dụng dễ dàng. Có lẽ đó chỉ là tôi có một ngày tìm kiếm tồi tệ. Dù sao thì cuối cùng tôi cũng giải quyết được tệp json sau

ý chính. github. com

https. //ý chính. github. com/anubhavshrimal/75f6183458db8c453306f93521e93d37

Mã quốc gia. json
[
{
"name": "Afghanistan",
"dial_code": "+93",
"code": "AF"
},
{
"name": "Aland Islands",
"dial_code": "+358",
"code": "AX"
Tập tin này đã bị cắt bớt. hiển thị nguyên bản

mà tôi đã tải xuống và trích xuất những gì tôi cần và chuyển thành tệp CSV

(2) Định dạng số điện thoại địa phương rất quan trọng. Tại Vương quốc Anh, tất cả các số điện thoại quốc gia đều bắt đầu bằng một số 0 duy nhất theo sau là một số khác không theo sau là một loạt các chữ số khác

(3) Kiến thức về các mã tiền tố khác. - ở Vương quốc Anh và nhiều quốc gia khác, 00 là tiền tố truy cập quốc tế tiêu chuẩn tương đương với việc nhấn + trên điện thoại di động hoặc điện thoại được trang bị phù hợp khác. Vì vậy, nếu số bắt đầu bằng 00, điều đó có nghĩa là số tiếp theo là mã quay số quốc tế và số tiếp theo là số quốc gia trong lãnh thổ được đại diện bởi mã quay số đó

(4) Những điều cần lưu ý khác. danh sách của tôi ở trên là không đầy đủ. Chúng tôi có các mã khác ở Vương quốc Anh, chẳng hạn như 100 để gọi cho nhà điều hành, 118nnn cho các dịch vụ danh bạ và các số đặc biệt khác bắt đầu bằng số 1, sau đó là các dịch vụ khẩn cấp (tức là 999, tương đương với 911) chẳng hạn. Tôi không tính đến bất kỳ điều gì trong số đó với danh sách này và họ sẽ cần xử lý đặc biệt

Như đã lưu ý, tôi sẽ thực hiện bản demo này theo quan điểm đây là một danh sách của Vương quốc Anh, vì vậy xin lỗi nếu không phải như vậy nhưng hy vọng nó sẽ chứng minh được quan điểm và có thể được điều chỉnh khi bạn đã tìm thấy thông tin cần thiết để trình bày

Mã quay số quốc tế để gọi đến Vương quốc Anh là +44. Vì vậy, bất cứ thứ gì trong danh sách không được công nhận là số quốc tế, sẽ được coi là số +44. Ngoài ra còn có một tiêu chuẩn là khi gọi quốc tế đến một quốc gia, bất kỳ số 0 nào đứng trước trong số quốc gia đang quay phải được bỏ đi. Vì vậy, nếu số điện thoại trong danh sách của bạn 0203456789 là một số hợp lệ ở Vương quốc Anh, thì số điện thoại quốc tế sẽ là +44203456789 (tôi. e. tiền tố-0 đã bị xóa)

Bởi vì tất cả các số quốc gia của Vương quốc Anh đều bắt đầu bằng số 0, bất kỳ số nào trong danh sách của bạn không bắt đầu bằng số 0 sẽ được coi là số quốc tế (và tôi sẽ chỉ cho rằng đối với những số đó, + đã vô tình bị bỏ sót, vì vậy tôi sẽ thêm nó . Tóm lại, bất kỳ thứ gì không được xác định là địa phương đối với tôi (Vương quốc Anh) sẽ có + được thêm vào làm tiền tố nếu chưa có

Các số được xác định là số địa phương của Vương quốc Anh sẽ được chuyển đổi thành số quốc tế và với tất cả những số đó được kết hợp với nhau, chúng tôi sẽ nhận được danh sách sau

Lấy mã quốc gia từ số điện thoại javascript

hình ảnh802×297 60. 4KB

Sau đó, chúng tôi có thể thử khớp các số với danh sách mã quay số quốc tế

Vấn đề về số điện thoại là chúng đến từ thời kỳ tiền điện tử. Vì các số đó được xử lý bằng thiết bị cơ học và ngay sau khi một chữ số được quay số, định tuyến cho số đó sẽ trở nên cố định, bất kể các chữ số theo sau là gì.

Bây giờ điều này có vẻ như là kiến ​​thức trừu tượng, nhưng nó thực sự rất hữu ích để biết. Điều đó có nghĩa là bất kỳ phạm vi số nào xác định đích không thể được chia nhỏ hơn nữa cho một đích hoàn toàn khác

e. g. Vì mã quốc tế của Hoa Kỳ/Canada là +1, điều này loại bỏ hoàn toàn khả năng bất kỳ mã quốc tế nào khác có thể bắt đầu bằng số 1. Phạm vi 1 đã được thực hiện hoàn toàn bởi Hoa Kỳ/Canada.
Tương tự +44 là Vương quốc Anh (và các lãnh thổ thuộc Vương quốc Anh [Guernsey, Đảo Man, Jersey, Vương quốc Anh] ). Vì vậy, không quốc gia nào khác có thể có mã quay số bắt đầu bằng +44.

Với kiến ​​thức đó, chúng ta có thể dễ dàng khớp danh sách các mã quay số với danh sách các số điện thoại mà chúng ta hiện có. Chúng tôi không phải lo lắng về độ dài của mã thực tế. Chúng tôi không phải lo lắng rằng +44 sẽ khớp với Vương quốc Anh nhưng +442 có thể khớp với một nơi khác. Nó không thể. Nếu một số bắt đầu +44, chúng tôi biết đó là Vương quốc Anh. Thật tốt khi hiểu dữ liệu của bạn

Tôi đã tải quy trình làm việc demo lên trung tâm. Bạn sẽ cần định cấu hình nó và có thể sửa đổi nó (xóa/thay đổi các giả định của tôi) để làm cho nó hoạt động ở một quốc gia địa phương khác, nhưng hy vọng nó mang lại ý tưởng về cách thức hoạt động của tính năng khớp số điện thoại

Đối với khớp ký tự đại diện, không thể sử dụng trình nối tiêu chuẩn, do đó, điều này cũng dùng để giới thiệu một thành phần khác, thành phần “Tham gia thích” mà bạn có thể tìm thấy trên trung tâm tại

Lấy mã quốc gia từ số điện thoại javascript
Trung tâm KNIME
Lấy mã quốc gia từ số điện thoại javascript

Tham gia Thích – takbb

Nối hai bảng dựa trên giá trị cột đã chọn trong bảng đầu vào TOP khớp với mẫu Wilcard có trong bảng đầu vào BOTTOM. Ký tự đại diện SQL tiêu chuẩn…

Khi chúng tôi có điều đó, chúng tôi có thể tham gia các mã quay số quốc tế trở lại tệp csv ban đầu và lấy thông tin quốc gia/lãnh thổ có liên quan nếu chúng tôi muốn

Lấy mã quốc gia từ số điện thoại javascript

hình ảnh1097×403 124 KB

Quy trình làm việc demo có thể được tìm thấy ở đây

Lấy mã quốc gia từ số điện thoại javascript
Trung tâm KNIME
Lấy mã quốc gia từ số điện thoại javascript

Xử lý số điện thoại – takbb

Ví dụ về xử lý số điện thoại để lấy mã quốc gia. Quy trình làm việc này thể hiện việc phân tích cú pháp các số điện thoại, nhưng hãy nhớ rằng ứng dụng chính xác…

Làm cách nào để lấy mã quốc gia từ số điện thoại trong JavaScript?

Include Major CDNs. .. .
Tạo trường nhập liệu HTML. Chúng tôi sử dụng thuộc tính ID của trường điện thoại để đặt mã quốc gia. .
Include intlTelInput JS to set country code.