How to separate country code and number with a space from a phone number
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-14-2025 02:35 AM
There is a requirement to separate a phone number and country code with a space. We have a customized table where we have different country codes with different digits and different phone number digits.
There is a sample code for specific country code and phone number length. Can you suggest how it will work for all the country codes and phone n umber length.
var phoneNumber = '+41794XXXXXXX';
var countryCodeLength = phoneNumber.length - 10;
var components = {
IDDCC: phoneNumber.substr(0, countryCodeLength),
NN: phoneNumber.substr(countryCodeLength, phoneNumber.length)
};
gs.print(JSON.stringify(components));
Please suggest.
Thanks.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-14-2025 02:42 AM
To make it dynamic for all country codes and phone number lengths in ServiceNow, you need a way to determine the country code length. Use a predefined list of country code lengths or detect patterns dynamically if possible.
Solution:
var phoneNumber = '+41794XXXXXXX';
var countryCodeLength = detectCountryCodeLength(phoneNumber);
var components = {
IDDCC: phoneNumber.substr(0, countryCodeLength),
NN: phoneNumber.substr(countryCodeLength)
};
gs.print(JSON.stringify(components));
function detectCountryCodeLength(phoneNumber) {
var countryCodeRegex = /^\+\d{1,4}/;
var match = phoneNumber.match(countryCodeRegex);
return match ? match[0].length : 0;
}
Uses regex to detect country code dynamically.
Supports varying country code and phone number lengths without hardcoding.
Returns separated IDDCC(country code) and NN(national number).
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-14-2025 03:13 AM
Hey @Koyel Guha
Use the following function to saparate county code from number:
function separateCountryCodeAndNumber(phoneNumber) {
// Match the country code and phone number (assuming the country code is 1-4 digits long)
const regex = /^(\+\d{1,4})(\d{7,15})$/;
// Apply the regex to the input phone number
const match = phoneNumber.match(regex);
if (match) {
// Return the formatted string with a space between the country code and the number
return match[1] + ' ' + match[2];
} else {
return "Invalid phone number format.";
}
separateCountryCodeAndNumber("+123456789012");
O/p: +12 3456789012
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-16-2025 12:10 AM
Hi Nilesh,
You have specified the regex to 4 digits. There are other country codes length, how it will identify which part is the country code and which part is the phone number length. I have tried the code in background script, the code is not getting executed. Can you please help on this.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-14-2025 04:17 AM
what all country codes are there?
try this
var phoneNumber = '+41794XXXXXXX';
// Regular expression to match the country code and phone number
var regex = /^(\+\d{1,4})(\d{6,15})$/;
var match = phoneNumber.match(regex);
if (match) {
var components = {
IDDCC: match[1], // Country code
NN: match[2] // Phone number
};
gs.print(JSON.stringify(components));
} else {
gs.print('Invalid phone number format');
}
If my response helped please mark it correct and close the thread so that it benefits future readers.
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader