Replace a character in the string using JavaScript | Community
Skip to main content
Level 2
April 13, 2009
Question

Replace a character in the string using JavaScript

  • April 13, 2009
  • 14 replies
  • 22352 views

Hello,

I would like to ask for help. I have a field in the xml file, which contains a string, that is bound to a text box on the form.

What would be the syntax to replace a special character in the string with the carriage return?

Thank you.

This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.

14 replies

April 14, 2009

The following script uses a regular expression to identify any white space "\s" character and replace it with a carriage return. You could replace the "\s" with the applicable expression for your special character. Place the expression between the two forward slashes.

var str = this.rawValue;
this.rawValue = str.replace(/\s/,"\n");

Steve

Level 4
April 14, 2009

Is there also a short possibility to search for a special character in a value?

Like if it contains an "a" = "true".

If it contains no "a" = "false".

I want to create a similar script with no variable.

this.rawValue = this.rawValue.replace(/ü/,"ue")

Works for the first character, but not for the following ones. So I want to create a while function.

ishark59Author
Level 2
April 14, 2009

Steve,

Thanks a lot.

It worked.

Best regards,

Ilya.

April 14, 2009

Try these...

Find a character and return a boolean

if (findChar(this.rawValue)) {
    xfa.host.messageBox("Found 'a'.");
}

function findChar(str) {
    var foundChar = false;
    for (var i=0; i < str.length; i++) {
        if (str.charAt(i) == "a") {
            foundChar = true;
        }
    }
    return foundChar;
}

Find a single character and replace it with a string


var str = this.rawValue;
var wordArray = str.split("ü");
this.rawValue = wordArray[0] + "ue" + wordArray[1];

Steve

ishark59Author
Level 2
April 14, 2009

Steve,

Thanks a lot. I will try this one as well.

Best regards,

Ilya.

Level 4
April 15, 2009

Find a single character and replace it with a string


var str = this.rawValue;
var wordArray = str.split("ü");
this.rawValue = wordArray[0] + "ue" + wordArray[1];

Didn't work, when the same char was more than one time in the field.

But the bolean did the job.

Thanx

Lisa

ishark59Author
Level 2
April 15, 2009

Lisa,

Thanks a lot. It worked.

Regards,

Ilya.

Level 4
April 15, 2009

Huh?

I didn't post my script...

It sure is no clean programming since I just took Steve's solutions and delted the ligns I didn't want (the app allert)

Though in the end I've taken the boolean out, or better replaced it with the replacement function, it repeats the replacement no matter how much "ü"'s are in there. (I needed the boolean though, since as long as it was true, the if should be executed.)

Somehow it worked... not 100% sure why, but it worked.

if (findChar(this.rawValue)) {
   

}


function findChar(str)

{  for (var i=0; i < str.length; i++)

     {
        if (str.charAt(i) == "ü")

          {
           this.rawValue = this.rawValue.replace(/ü/,"ue")
          }
     }

}

ishark59Author
Level 2
April 15, 2009

I used this approach to replace one of the purposely embedded character '~' into the XML file during the XSLT transformation and replace it using JavaScript with the carriage return.

Thank you.

April 15, 2009

This will handle multiple occurences of  "ü".

var str = this.rawValue;
var wordArray = str.split("ü");
var wordIndex = wordArray.length - 1;
str = "";
for (i=0; i < wordIndex; i++) {
    str += wordArray[i] + "ue";
}
this.rawValue = str + wordArray[wordIndex];