Add " - " symbol after every two numbers in string field.

ar1
Kilo Sage

HI All,
Can anyone please help us on the below requirement.

We have one field called "Count" and it's string type.
And when an end user enter any numbers in the field we need to automatically add the " - " symbol after every two numbers.

Examples:

-->  12-34-56
--> 32-3
--> 45

Advance thanks.

1 ACCEPTED SOLUTION

ar1
Kilo Sage

Hi All,
Many thanks for your response.

Below code working fine for us:

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

// //Type appropriate comment here, and begin script below

var str = newValue.toString();

var tempdata='';
for (var i=0; i<str.length; i++){
if(str[i]!='-')
{
tempdata=tempdata+str[i];
//alert(tempdata);
}
}
//alert(tempdata);
var result='';
for (var j=0; j<tempdata.length; j++){
if(j%2!=0 && j!=tempdata.length-1)
{
result=result+tempdata[j]+'-';
}else{
result=result+tempdata[j];
}
}
//alert(result);

g_form.setValue('u_count', result);

}

View solution in original post

11 REPLIES 11

Muhammad Khan
Mega Sage
Mega Sage

You can create onChange() Catalog Client Script on your Count variable and use below script in your client script.

var str = newValue.toString();

var temp = str.slice(0, 2);
for (var i=2; i<str.length; i+=2){
        temp += '-' + str.slice(i, i+2);
}

g_form.setValue('<backend_name_of_count_variable>', temp);

Background Script

MuhammadKhan_0-1668664669863.png

 

Output

MuhammadKhan_1-1668664688223.png

Hi Muhammad,
Many thanks for the response.
we tried your script , but it's not working.
when we add the alerts to check the loop,
it's continuously running in the loop and it's not setting the value in the count field.

Thanks. 

SUBHAM AGARWAL
Tera Guru

Hello, 

You can do it by simple string manipulations

 

 

var NewCount = ''";
var Count = g_form.getValue('u_count');
for (var i = 0; i < Count.length; i++) {
if (i % 2 == 0 && i != 0) {
NewCount = NewCount + "-" + Count[i];
} else {
NewCount = NewCount + Count[i];
}
}

g_form.setValue('u_count', NewCount);

Hi Shubham,
Thanks for the response.
We tried your code but it's not working.
The instance is freezing.


Thanks.