Pin Me

Using a Wildcard with Replace in JavaScript

written by: Steven Sheely•edited by: Amber Neely•updated: 9/15/2010

The JavaScript replace function is a useful tool for replacing parts of a string with new text. Using regular expressions and the wildcard operator, we show how to increase its use and effectiveness.

  • slide 1 of 4

    The JavaScript Replace Function

    One of the most common programming tasks involves replacing part of a string with different text. Almost every language features a built in function to solve this problem. In JavaScript, that function is replace().

    The JavaScript function replace is a built-in function that acts on a string and takes two arguments, the first being a substring or a regular expression to match, and the second being the new text you want replaced in. For example, replacing the word "car" with "auto" in the string "I just went to Catalina and bought a new car", can be accomplished as follows:wildcard1 

    The variable 'newstr' will now contain the string "I just went to Catalina and bought a new auto".

    What if, instead, we wanted to replace all of the words that began with the letter 'C' with auto? We can't specify that with a string for the first argument of replace. Instead, we will have to use regular expressions.

  • slide 2 of 4

    Wildcards and Regular Expressions

    Regular expressions are strings that define patterns which functions like Replace can use to match parts of strings with. They are, in essence, a separate language within the language of Javascript.

    Continuing our example from above, if we wanted to write a regular expression that matched any word that started with the letter c, we would write the following: /\bc[A-Za-z0-9]*/g.

    The first character, /, signifies that we are starting a regular expression. \b indicates that we want to match the beginning of a word. The c tells the regular expression compiler which letter we are looking for. [A-Za-z0-9]* says to allow zero or more characters or digits after the letter c. The next forward slash signifies the end of the regular expression, and the g indicates that we want to replace all instances that are matched.

    Our new code would read as follows:

    var newstr = str.replace(/\bc[A-Za-z0-9]*/g, "auto");

    The key thing to take from this is the use of the asterisk, also known as the wildcard operator. The asterisk tells the compiler to match one or more of the proceeding character(s).

  • slide 3 of 4

    Wildcard Operator and replace

    Given this knowledge, we can easily write regular expressions that contain wildcard operators that we can pass to JavaScript's replace function. If we wanted to rename a .JPG image file to "picture.jpg", for example, we could do the following:

    var newstr = str.replace(/\b([A-Za-z]*)\.jpg/g, "picture.jpg");

    Another example of using wildcards in javascript's replace function is to replace all non-standard characters with a blank space:

    var newstr = str.replace(/\W+/g, ' ');

    Using the wildcard operator in JavaScript's replace is both useful and easy. So get out there and start replacing!

  • slide 4 of 4

    Image Credits

    The screenshot provided belongs to Steven Sheely and is for educational purposes only.