Monday, 8 January 2018

javascript - Converting user input string to regular expression

itemprop="text">

I am designing a regular expression
tester in HTML and JavaScript. The user will enter a regex, a string, and choose the
function they want to test with (e.g. search, match, replace, etc.) via radio button and
the program will display the results when that function is run with the specified
arguments. Naturally there will be extra text boxes for the extra arguments to replace
and such.



My problem is getting the string from
the user and turning it into a regular expression. If I say that they don't need to have
//'s around the regex they enter, then they can't set flags,
like g and i. So they have to have the
//'s around the expression, but how can I convert that string
to a regex? It can't be a literal since its a string, and I can't pass it to the RegExp
constructor since its not a string without the //'s. Is there
any other way to make a user input string into a regex? Will I have to parse the string
and flags of the regex with the //'s then construct it another
way? Should I have them enter a string, and then enter the flags separately?


style="font-weight: bold;">

Answer




Use the href="https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/RegExp"
rel="noreferrer">RegExp object constructor to create a regular expression
from a string:



var re = new
RegExp("a|b", "i");

// same as
var re =
/a|b/i;

No comments:

Post a Comment

php - file_get_contents shows unexpected output while reading a file

I want to output an inline jpg image as a base64 encoded string, however when I do this : $contents = file_get_contents($filename); print ...