Reputation: 14039
I am trying to search a single whole word through a textbox. Say I search "me", I should find all occurrences of the word "me" in the text, but not "memmm" per say.
I am using JavaScript's search('my regex expression')
to perform the current search (with no success).
After several proposals to use the \b
switches (which don't seem to work) I am posting a revised explanation of my problem:
For some reason this doesn't seem to do the trick. Assume the following JavaScript search text:
var lookup = '\n\n\n\n\n\n2 PC Games \n\n\n\n';
lookup = lookup.trim() ;
alert(lookup );
var tttt = 'tttt';
alert((/\b(lookup)\b/g).test(2));
Moving lines is essential
Upvotes: 48
Views: 84657
Reputation: 78292
To use a dynamic regular expression see my updated code:
new RegExp("\\b" + lookup + "\\b").test(textbox.value)
Your specific example is backwards:
alert((/\b(2)\b/g).test(lookup));
Upvotes: 78
Reputation: 123
You may use the following code:
var stringTosearch ="test ,string, test"; //true
var stringTosearch ="test string test"; //true
var stringTosearch ="test stringtest"; //false
var stringTosearch ="teststring test"; //false
if (new RegExp("\\b"+"string"+"\\b").test(stringTosearch)) {
console.log('string found');
return true;
} else {
return false;
}
Upvotes: 10
Reputation: 333304
<script type='text/javascript'>
var lookup = '\n\n\n\n\n\n2 PC Games \n\n\n\n';
lookup = lookup.trim() ;
alert(lookup );
var tttt = 'tttt';
alert((/\b(lookup)\b/g).test(2));
</script>
It's a bit hard to tell what you're trying to do here. What is the tttt
variable supposed to do?
Which string are you trying to search in? Are you trying to look for 2
within the string lookup
? Then you would want:
/\b2\b/.test(lookup)
The following, from your regular expression, constructs a regular expression that consists of a word boundary, followed by the string "lookup"
(not the value contained in the variable lookup
), followed by a word boundary. It then tries to match this regular expression against the string "2"
, obtained by converting the number 2
to a string:
(/\b(lookup)\b/g).test(2)
For instance, the following returns true
:
(/\b(lookup)\b/g).test("something to lookup somewhere")
Upvotes: 3