0

I'm trying to convert the following php expression into JavaScript but I'm having trouble with one thing.

preg_replace('/'.preg_quote($keyword).'/i', "<span>$0</span>", $string)

What happens here is that I can reuse the found substring with the right "case letters". Its hard to explain what I mean but let me give an example:

If the user inputs sweden, then this string is all lowercase letters. But in the result this same word is written as Sweden, so I want it to keep its cases as they are.

it is possible to do this in php by using the matched value $0, as you can see in the php expression.

In JavaScript what I have so far is:

var highlighted_sub = location_sub_name[i].replace(regexp_highlight,"<span class='loc_keyword'>" + location_keyword + "</span>");

This replaces the original result with the input from the user, so I get sweden in all lower case letters as the user input them, when I actually want the cases to be as they really are.

1

1 Answer 1

1

You can do the same in javascript; the only exception is that the "entire match" backreference is $& instead of $0. The rest, $1 through $9, works exactly the same though. Try it out in the address bar of your browser:

javascript: document.write('foobar'.replace(/(f)[o]/g, ' $1 $& '));

This page has more info: http://www.regular-expressions.info/refreplace.html

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.