Skip to main content
Inspiring
April 11, 2021
Answered

split string

  • April 11, 2021
  • 4 replies
  • 5895 views

Is there a way to export last word of a string into a new field?

This topic has been closed for replies.
Correct answer Nesa Nurani

Use this:

var str = this.getField("Text1").valueAsString;
var xstr = str.split("");
xstr.push(xstr.shift());
ystr = xstr.join("");
event.value = ystr;

4 replies

New Participant
December 12, 2022

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.

Nesa Nurani
Community Expert
December 12, 2022

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] : "";}

New Participant
December 12, 2022
Hi Nesa,

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.
blazbAuthor
Inspiring
April 22, 2021

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".

Nesa Nurani
Nesa NuraniCorrect answer
Community Expert
April 22, 2021

Use this:

var str = this.getField("Text1").valueAsString;
var xstr = str.split("");
xstr.push(xstr.shift());
ystr = xstr.join("");
event.value = ystr;

Thom Parker
Community Expert
April 12, 2021
Thom Parker - Software Developer at PDFScriptingUse the Acrobat JavaScript Reference early and often
blazbAuthor
Inspiring
April 12, 2021

Thanks Thom Il take a look at it.

Nesa Nurani
Community Expert
April 11, 2021

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.

blazbAuthor
Inspiring
April 11, 2021

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?

Nesa Nurani
Community Expert
April 11, 2021

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.