tags:

views:

69

answers:

4

Using JavaScript and I want to replace any text between @anytext@ with some text. I want to make it generic so I am thinking to make use of regular expression. How do I do it?

Example:replace('@hello@','Hi')

A: 

You can use the regex function of jquery to accomplish that... So find the @'s with a regular expression and afterwards use the replace function with the text you want.

Bloeper
+2  A: 

Try this:

str.replace(/@[^@]+@/g, 'Hi')

This will remove any sequences of @ … @ globally with Hi.


Edit    Some explanation:

  • /…/ is the regular expression literal syntax in JavaScript
  • @[^@]+@ describes any sequence of a literal @, followed by one or more (+ quantifier) characters that is not a @ (negated charcater class [^@]), followed by a literal @
  • the g flag in /…/g allows global matches; otherwise only the first match would be replaced
Gumbo
Works.Please provide some explanation.I didnt find any where so I can create my own Regular expressions.Thanks
Dee
Got it.Thanks alot.
Dee
A: 

This has nothing to do with jQuery, but just plain old javascript.

var regexp = new RegExp("@([^@]+)@");
text.replace(re, "replacement text");

But what do you mean by generic? How generic do you want to make it?

You can find more information about regular expressions on http://regexp.info including how to use in in Javascript

Ikke
generic I mean any text.Your sol works thanks
Dee
A: 

I need to make little manipulation in this.I need to retrieve the matched text and then replace the matched text.Something like this

Replace("@anytext@",@anytext@)

My string can have @anytext@ any where in string multiple times.

Dee