Copy link to clipboard
Copied
Hello! How might I be able to allow for two acceptable formats in a field? I'm have an elementary understanding of the arbitrary mask feature. The two formats are as follows:
Format 1: A999999999 (one letter & nine numbers)
Format 2: AA999999999 (two letters & nine numbers)
Thank you in advance!
Copy link to clipboard
Copied
Try this as validation script:
var str = event.value;
var reg = /^[a-zA-Z]{1,2}[0-9]{9}$/;
var r = reg.test(str);
if(!r)
app.alert("Your message goes here",3);
Copy link to clipboard
Copied
Try this as custom keystroke script:
if(event.willCommit){
var input = event.value;
var pattern = /^(|\d{4}$|\d{4}[A-Za-z]{2})$/;
if (!pattern.test(input)) {
event.rc = false;
app.alert("Input must be either 4 digits, 4 digits followed by 2 letters, or blank.");}}
Copy link to clipboard
Copied
Hi there
Hope you are doing well and sorry for the trouble. As described,you want to be able to allow for two acceptable formats in a field and want to user arbitrary mask format in the PDF form.
For more information about arbitrary mask format, please check the description under 'Format tab for form field properties' section of the help page - https://helpx.adobe.com/acrobat/using/pdf-form-field-properties.html and see if that works for you.
Regards
Amal
Copy link to clipboard
Copied
I read a post that said to allow for multiple formats you need to use a custom script using the RegExp object for testing is possible format. Does this sound correct? Thank you.
Copy link to clipboard
Copied
Hi there
You may use the custom format using the JavaScript in the PDF form. For more information about using the JavaScript please check the help page https://acrobatusers.com/tutorials/javascript_console/
Regards
Amal
Copy link to clipboard
Copied
Try this as validation script:
var str = event.value;
var reg = /^[a-zA-Z]{1,2}[0-9]{9}$/;
var r = reg.test(str);
if(!r)
app.alert("Your message goes here",3);
Copy link to clipboard
Copied
Thank you. It works great!
Copy link to clipboard
Copied
I tried to adjust this to fit my use case but can't seem to get it to work right... first off, when I click a reset form button that I have, the app alert message come up and would like to have a valid condition of the text box being empty. Basicly I need:
Format 1 = blank text Box
Format 2 = 9999 (4 numbers)
Format 3 = 9999AA (4 numbers and 2 letters)
When I try to specify these conditions, it seems to accept 9999 or 9999A or 9999AA... I need it not to accept 9999A
Copy link to clipboard
Copied
Try this as custom keystroke script:
if(event.willCommit){
var input = event.value;
var pattern = /^(|\d{4}$|\d{4}[A-Za-z]{2})$/;
if (!pattern.test(input)) {
event.rc = false;
app.alert("Input must be either 4 digits, 4 digits followed by 2 letters, or blank.");}}
Copy link to clipboard
Copied
Works perfectly!
Copy link to clipboard
Copied
Sorry to revive and hijack this thread, but I am looking for the same thing, but to accept only standard social security numbers or company EINs. This should be formatted like this:
999-99-9999
99-9999999
As you can see, it is the same amount of digits, but the formatting will look quite different. If you could please advise on how to add an "or" using an arbitrary mask, or help me adjust the Java validation script above, I would really appreciate it!
Copy link to clipboard
Copied
Try this:
var str = event.value;
var reg = /^\d{3}-\d{2}-\d{4}$|^\d{2}-\d{7}$/;
var r = reg.test(str);
if(!r && str !== ""){
event.rc = false;
app.alert("Your message goes here",3);}
Copy link to clipboard
Copied
Hi Nesa,
I hope you don't mind me hopping on your thread. This is a great script. I'm hoping you can help me clean up the alteration I'm trying to make with this script. My goal is to change it to just 3 alphabet letters. I can't seem to get the script right. Here is where i'm at with this and it's not working.
if(event.willCommit){
var input = event.value;
var pattern = /^(|\[A-Za-z]{3}$|$/);
if (!pattern.test(input)) {
event.rc = false;
app.alert("Input must be either 3 alphabet letters, or blank.");}}