Copy link to clipboard
Copied
Is there a way to export last word of a string into a new field?
Copy link to clipboard
Copied
You can use this code as validation script of a field where text is:
this.getField("Text1").value = event.value.split(" ").pop();
Change field name if needed.
Copy link to clipboard
Copied
Just add this '+event.value.split(" ").shift();' to the code like this:
this.getField("Text1").value = event.value.split(" ").pop()+event.value.split(" ").shift();
TIP: split(), splits string into array.
pop(), removes last element of array and returns that element
and shift(), removes first element of array and returns that element.
Copy link to clipboard
Copied
Use this:
var str = this.getField("Text1").valueAsString;
var xstr = str.split("");
xstr.push(xstr.shift());
ystr = xstr.join("");
event.value = ystr;
Copy link to clipboard
Copied
You can use this code as validation script of a field where text is:
this.getField("Text1").value = event.value.split(" ").pop();
Change field name if needed.
Copy link to clipboard
Copied
Thank you so much. I have additional question.
In my string first and last word are numbers. How would I extract both numbers and then join them,
but numbers from end of the strings should be first?
Copy link to clipboard
Copied
Just add this '+event.value.split(" ").shift();' to the code like this:
this.getField("Text1").value = event.value.split(" ").pop()+event.value.split(" ").shift();
TIP: split(), splits string into array.
pop(), removes last element of array and returns that element
and shift(), removes first element of array and returns that element.
Copy link to clipboard
Copied
Do you want to add the numbers to each other, or join them as strings?
Copy link to clipboard
Copied
As i wrote in my post, I wanted numbers from end of the string to be first for example "12 hello 34"
and I wanted numbers to be 3412, so Nesa code gives me that. Is there better solution?
Copy link to clipboard
Copied
No, Nesa's solution is excellent. I just thought you might wanted to add those numbers together (so in your example the result would be 46), not concatenate them as strings. But if that's what you want to do then Nesa's solution should work just fine.
Copy link to clipboard
Copied
This article explains it all:
https://acrobatusers.com/tutorials/splitting-and-rebuilding-strings/
Use the Acrobat JavaScript Reference early and often
Copy link to clipboard
Copied
Thanks Thom Il take a look at it.
Copy link to clipboard
Copied
Hi, I have additional question. In my text field "Text1" I have a string that starts with a letter and end with a number.
I want to show this in second field but I need letter to be next to a number. e.g. original text: "X some text 1234"
new text: "some text 1234X".
Copy link to clipboard
Copied
Use this:
var str = this.getField("Text1").valueAsString;
var xstr = str.split("");
xstr.push(xstr.shift());
ystr = xstr.join("");
event.value = ystr;
Copy link to clipboard
Copied
I have a text field (text1) with a sentence of 8 words. I am trying to display each word in a different text fields from text2 to text 9 (1 word/ field). I am a beginner using PDF and Scripts, but I really appreciate detailed explanation to do that.
Thank you.
Copy link to clipboard
Copied
You can use this (assuming all words are separated by space character) as validation script of "text1" field:
var str = event.value.split(" ");
for( var i=0; i<=7; i++){
this.getField("text"+(i+2)).value = str.length == 8 ? str[i] : "";}
Copy link to clipboard
Copied
I already paste the script as validation script of "Text1" field, but fields from Text2 to Text9 still empty. What can I do to populate each word in the respective fields?
Thank you.
Copy link to clipboard
Copied
In your first post you writed 'text' not 'Text' so if your fields are named 'Text' change that in script.
Copy link to clipboard
Copied
You should also look in the console window to see if any errors are reported. Press "Ctrl-J".
Use the Acrobat JavaScript Reference early and often

