Velocity Reviews

Velocity Reviews (http://www.velocityreviews.com/forums/index.php)
-   Javascript (http://www.velocityreviews.com/forums/f68-javascript.html)
-   -   How to search a particular substring in square bracket (http://www.velocityreviews.com/forums/t928569-how-to-search-a-particular-substring-in-square-bracket.html)

balakrishnan.dinesh@gmail.com 12-06-2006 11:02 AM

How to search a particular substring in square bracket
 
Hi frnds,

Im having a problem in searching out a particular substring in a
string.

Here the code:
---------------------
<html>
<script>
var tmpString="[Wed May 3 18:25:14 2006] [192.168.1.61] [GET
/manual/en/images/down.gif] [304] [0] [] [396 msecs]";
var ip="[192.168.1.61]";
var arr=tmpString.match(ip)
(or)
var arr=tmpString.search(ip)

alert(arr);
</script>
<body>
</body>
</html>

So in my tmpString variable, i have the data like this with square
brackets,Now i want to compare the ip variable value with tmpString
contained ip value, due to this sqaure brackets im not able to compare
it accurately.I used "match" and "search" commands, both are not
useful. While using "search" , it is showing error if square bracket
used.using match it is returning some interger.
If im comparing with square brackets, then some other problems are
creating i.e, if i give 192.168.1.6 as ip variable value and compared
with tmpString value, then also it is showing output as the correct
one.

Can anyone give me a proper solution for this

Thanks
Dinesh....


Noah Sussman 12-06-2006 12:54 PM

Re: How to search a particular substring in square bracket
 
balakrishnan.dinesh@gmail.com wrote:
> Im having a problem in searching out a particular substring in a
> string.
> var tmpString="[Wed May 3 18:25:14 2006] [192.168.1.61] [GET
> /manual/en/images/down.gif] [304] [0] [] [396 msecs]";
> var ip="[192.168.1.61]";
> var arr=tmpString.match(ip)
> (or)
> var arr=tmpString.search(ip)
>
> So in my tmpString variable, i have the data like this with square
> brackets, Now i want to compare the ip variable value with tmpString
> contained ip value, due to this sqaure brackets im not able to compare
> it accurately.


Both match and search take regular expressions as their arguments.
And, if given a non-regex argument, match() and search() automatically
_convert_ that argument to a regex.

Square brackets [] are a regular expression operator. In a regex,
"[192.168.1.61]" matches _one_character,_ as long as that character is
_any_ of 1,9,2,6 or 8.

> While using "search" , it is showing error if square bracket
> used.


Hmm, when I run your example code using search(), arr evaluates to 11.
11 is the position in tmpString of the first match for the regex
"[192.168.1.61]"; which is the digit "1" in "18:25:14".

> using match it is returning some interger.


Agreed. Using match() in your example, arr evaluates to 1. In this
case, match() is returning the string that was matched. But the regex
"[192.168.1.61]" only matches one character, the 1 in "18:25:14".

If you escape each of the square brackets in ip with a double
backslash, you should get more reasonable results:

var ip="\\[192.168.1.61\\]";
var tmpString="[Wed May 3 18:25:14 2006] [192.168.1.61]
[GET/manual/en/images/down.gif] [304] [0] [] [396 msecs]";
var matched=tmpString.match(ip);
var searched=tmpString.search(ip);

Now matched should contain "[192.168.1.61]", which is the part of
tmpString that matches ip. And searched should contain "26", which is
the position in tmpString of the first character of the substring that
matches ip.


RobG 12-06-2006 01:14 PM

Re: How to search a particular substring in square bracket
 
balakrishnan.dinesh@gmail.com wrote:
> Hi frnds,
>
> Im having a problem in searching out a particular substring in a
> string.
>
> Here the code:
> ---------------------
> <html>
> <script>
> var tmpString="[Wed May 3 18:25:14 2006] [192.168.1.61] [GET
> /manual/en/images/down.gif] [304] [0] [] [396 msecs]";
> var ip="[192.168.1.61]";
> var arr=tmpString.match(ip)


The paramter supplied to match is supposed to be a regular expression,
not a string. If you just want to see if tmpString contains the string
"[192.168.1.61]" then use test (tmpString wrapped for posting):

var tmpString = "[Wed May 3 18:25:14 2006] [192.168.1.61]"
+ " [GET /manual/en/images/down.gif] [304]"
+ " [0] [] [396 msecs]";
alert( /\[192\.168\.1\.61\]/.test(tmpString) );

If you wish to supply the IP address as a variable, you can use:

var ip = "192.168.1.61";
var re = new RegExp('\\['+ip.replace(/\./g,'\\.')+'\\]');
var tmpString = "[Wed May 3 18:25:14 2006] [192.168.1.61]"
+ " [GET /manual/en/images/down.gif] [304]"
+ " [0] [] [396 msecs]";
alert( re.test(tmpString) );

A regular expression of:

var re = new RegExp('\\[' + ip + '\\]');

may be sufficient, but there is a good chance it many not. Please test
thoroughly.

--
Rob


VK 12-06-2006 03:28 PM

Re: How to search a particular substring in square bracket
 

balakrishnan.dinesh@gmail.com wrote:
> <html>
> <script>
> var tmpString="[Wed May 3 18:25:14 2006] [192.168.1.61] [GET
> /manual/en/images/down.gif] [304] [0] [] [396 msecs]";
> var ip="[192.168.1.61]";
> var arr=tmpString.match(ip)
> (or)
> var arr=tmpString.search(ip)
>
> alert(arr);
> </script>
> <body>
> </body>
> </html>


if (tmpString.indexOf(ip) != -1) {
// match found
}
else {
// no match found
}

KISS rules :-)



All times are GMT. The time now is 09:42 PM.

Powered by vBulletin®. Copyright ©2000 - 2014, vBulletin Solutions, Inc.
SEO by vBSEO ©2010, Crawlability, Inc.