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')
-
Changed everything from jQuery to JavaScript, as it has nothing to do with jQuery.Yacoby– Yacoby2010年02月11日 10:18:52 +00:00Commented Feb 11, 2010 at 10:18
-
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@",<a href=#>@anytext@</a>) My string can have @anytext@ any where in string multiple times.Dee– Dee2010年02月11日 11:12:38 +00:00Commented Feb 11, 2010 at 11:12
3 Answers 3
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
gflag in/.../gallows global matches; otherwise only the first match would be replaced
1 Comment
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.
Comments
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