Phone Number validation for populating phone number field on load(it takes value of phone number from user table) It should only accept these formats-(999) 999-9999, 999-999-9999, and 9999999999

Deepali Rattan
Tera Contributor

There are two phone number field for requester for and requested by:

Phone Number validation for populating phone number field on load(it takes value of phone number from user table)

It should only accept these formats-(999) 999-9999, 999-999-9999, and 9999999999

I have this code for on change: working fine populating numbers for these formats-(999) 999-9999, 999-999-9999, and 9999999999 (REQUESTED FOR)

 var pattern = /^[+1]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\s\./0-9]*$/;  
var phone = g_form.getValue('phone_number_requested_for');

if(!pattern.test(newValue)){  


alert('Phone enter a valid phone number');  


g_form.setValue('phone_number_requested_for', '');  
}
	else{
		 phone = phone.replace(/\D/g,'');


var regex = /^\d{10}$/;


var is_valid = regex.test(phone);


if(!is_valid){


alert('Invalid phone number. Please enter 10 digits/ Do not add country code');


g_form.clearValue('phone_number_requested_for');


}
	}


 }  

But same code is not working for onLoad:(REQUESTED BY)

 

function onLoad() {
   //Type appropriate comment here, and begin script below
    var user = g_form.getValue('requested_by');
    
    var ga = new GlideAjax('InternalApplicationUtil');
    ga.addParam('sysparm_name', 'getValues');
    ga.addParam('sysparm_val', user);
    ga.getXML(getdata);

    function getdata(response) {

        var answer = response.responseXML.documentElement.getAttribute("answer");
		var parseData = JSON.parse(answer);
		g_form.setValue('email_requested_by', parseData.email);
		g_form.setValue('email_requested_for', parseData.email);
		g_form.setValue('phone_number_requested_for', parseData.mobile_phone);
	//	g_form.setValue('phone_number_requested_by', parseData.mobile_phone);
		
		
		
		var phone=parseData.mobile_phone;
		
	//alert(check);
	 var pattern = /^[+1]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\s\./0-9]*$/;  
//var phone = g_form.getValue('phone_number_requested_for');

if(!pattern.test(phone)){  

alert(phone+" f");
alert('Phone enter a valid phone number');  


g_form.setValue('phone_number_requested_by', '');  
}
	else{
 phone = phone.replace(/\D/g,'');


var regex = /^\d{10}$/;

alert(' m '+phone);
	
var is_valid = regex.test(phone);


if(!is_valid){

alert('d  '+phone);
	
alert('Invalid phone number. Please enter 10 digits/ Do not add country code');


g_form.clearValue('phone_number_requested_by');


}
	}
 }  
}

Can someone tell what am I missing here?

1 ACCEPTED SOLUTION

Akshay H Mulky
Kilo Guru

Hi Deepali,


Firstly, can you try below modified client script for onChange:

function onChange(control, oldValue, newValue, isLoading, isTemplate) {
   if (isLoading || newValue === '') {
      return;
   }

	var oldV = oldValue;
	var validRegExp = /^\(?(\d{3})\)?[ -]?(\d{3})[ -]?(\d{4})$/;
   var checkPhone = g_form.getValue('phone_number_requested_for');
	
 if (checkPhone.search(validRegExp) == -1)
 {
 alert('Enter valid mobile phone in : (999) 999-9999, 999-999-9999, and 9999999999 formats');
 g_form.setValue('phone_number_requested_for',oldV);
 }
   
}

Secondly,

try implementing same regex expression check for On Load aswell.

 ex:

	//alert(check);
	 var validRegExp = /^\(?(\d{3})\)?[ -]?(\d{3})[ -]?(\d{4})$/; 
//var phone = g_form.getValue('phone_number_requested_for');

if (phone.search(validRegExp) == -1)
 {
 alert('Enter valid mobile phone in : (999) 999-9999, 999-999-9999, and 9999999999 formats');
 g_form.setValue('phone_number_requested_by','');
 }
else{
 g_form.setValue('phone_number_requested_by', phone);
}
 } 

 

 Note:

since we are using else condition to set phone number if its valid, you can remove below line:

find_real_file.png

View solution in original post

15 REPLIES 15

noahwbr23
Mega Contributor

Sometimes, websites don’t accept regular phone numbers, especially during registration. If you’re stuck, try using a platform where you can receive sms online uk https://online-sim.org/Free-GB-Phone-Number . It’s super easy and saves a lot of time.