Preview:
function onChange(control, oldValue, newValue, isLoading) {
    if (isLoading || newValue == '') {
        return;
    }
    var ga = new GlideAjax('PhoneNumberFormatter');
    ga.addParam('sysparm_name', 'process');
    ga.addParam('sysparm_phoneNumber', newValue);
    ga.getXMLAnswer(checkPhoneNumber);

    function checkPhoneNumber(response) {
        var responseArr = response.split(',');
        //if phonenumber is invalid
        if (responseArr[0] == "NO_MATCH") {
            g_form.clearValue('phone_number');
            if (responseArr[1] != 'null')
                g_form.showFieldMsg('phone_number', getMessage('XXX not a valid phone number') + decodeURI(responseArr[1]), 'error'); //invalid number
            else
                g_form.showFieldMsg('phone_number', getMessage('XXX phone number no country code'), 'error'); //no country code provide
        }
        //For valid phonenumbers, set phoneumber with returned value and remove spaces for uniformity
        else {
            g_form.hideFieldMsg('phone_number');
            g_form.setValue('phone_number', decodeURI(responseArr[0]).replaceAll(" ", ""));
        }
    }

}
downloadDownload PNG downloadDownload JPEG downloadDownload SVG

Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!

Click to optimize width for Twitter