View Full Version : Regular Expression questions

07-30-2002, 12:25 PM
Here is what I am trying to do:

I have an array of sentences. and I would like the user to be able to enter in a word which is then inserted into a regular expression to find all sentences with that word in it.

Here is an example
SentenceArray= new Array (
"I have a dog",
"dogs are good",
"cats are bad.")

The user then enters in the word "dog"

the regular expression should then look like this I think:
regexp = /dog/
and then an if is set up like

for (...) {
if (regexp.test(SentenceArray[X]){
do something

I am not exactly sure what I am doing wrong, but I have figured out that it doesn't like "regexp.test(SentenceArray[X])" and only seems to take some kind of form element. I tried a hidden field instead and that got it to stop giving an error, but I still never get any results.

Any help or suggestionw would be appreciated.

07-30-2002, 01:07 PM
If you want to construct a Regular Expression from user input, then you'll have to use the new RegExp() constructor function to ensure runtime compilation of the newly created RegExp. See also the detailed information at

A quick example for your code could look like

SentenceArray= new Array (
"I have a dog",
"dogs are good",
"cats are bad.")

function matchIt(word) {
var regex = new RegExp(word, "i");

for (var i = 0; i < SentenceArray.length; i++) {
if (regex.test(SentenceArray[i])) {
alert("'" + word + "' was found in '" + SentenceArray[i] + "'");


<form onsubmit="matchIt(this.what.value); return false;">
what to match?
<input type="text" name="what"></input><br>
<input type="submit"></input>


I hope that helps you for adjusting your code to the desired functionality. Note that I used the "i" flag to make a case-insensitive pattern matching.