backend v4 half
This commit is contained in:
Generated
Vendored
+30
@@ -0,0 +1,30 @@
|
||||
import Metadata from '../metadata.js'
|
||||
import { VALID_DIGITS } from '../constants.js'
|
||||
|
||||
const CAPTURING_DIGIT_PATTERN = new RegExp('([' + VALID_DIGITS + '])')
|
||||
|
||||
export default function stripIddPrefix(number, country, callingCode, metadata) {
|
||||
if (!country) {
|
||||
return
|
||||
}
|
||||
// Check if the number is IDD-prefixed.
|
||||
const countryMetadata = new Metadata(metadata)
|
||||
countryMetadata.selectNumberingPlan(country, callingCode)
|
||||
const IDDPrefixPattern = new RegExp(countryMetadata.IDDPrefix())
|
||||
if (number.search(IDDPrefixPattern) !== 0) {
|
||||
return
|
||||
}
|
||||
// Strip IDD prefix.
|
||||
number = number.slice(number.match(IDDPrefixPattern)[0].length)
|
||||
// If there're any digits after an IDD prefix,
|
||||
// then those digits are a country calling code.
|
||||
// Since no country code starts with a `0`,
|
||||
// the code below validates that the next digit (if present) is not `0`.
|
||||
const matchedGroups = number.match(CAPTURING_DIGIT_PATTERN)
|
||||
if (matchedGroups && matchedGroups[1] != null && matchedGroups[1].length > 0) {
|
||||
if (matchedGroups[1] === '0') {
|
||||
return
|
||||
}
|
||||
}
|
||||
return number
|
||||
}
|
||||
Reference in New Issue
Block a user