How do I find words starting with a specific letter?

codesam picture codesam · May 5, 2015 · Viewed 8.9k times · Source

I want to find words which start with a specific letter in a string using the following code. The specific letter would be supplied by the user in a text box.

This is what I have:

<!DOCTYPE html>
<html>
<body>

<input id="srch" type="text" />
<button onClick=searchword()>Search</button>

<p id="wrd" > hallo, this is a test john doe .
Another tea house pole.
</p>

</body>

<script>

function searchword() {

var s = document.getElementById("wrd").innerHTML;
var p= document.getElementById("srch").value;

var regx = new RegExp("(?:^|\W)" + p + "(\w+)(?!\w)","gi");

var re = regx, match, matches = [];

while (match = re.exec(s)) {
  matches.push(match[0]);
}
alert(matches);


}
</script>
</html>

Answer

Pedro Lobito picture Pedro Lobito · May 5, 2015

You can use word boundaries \b, the following example shows how to match every word starting with t

var string ="hallo, this is a test john doe .Another tea house pole. Hey Tom."
result = string.match(/(\bt\S+\b)/ig);
//result = string.match(/(\st\S+)/ig); // alternative
document.write(result);