Connecting Tech Pros Worldwide Help | Site Map

regexp help on part match

 
LinkBack Thread Tools Search this Thread
  #1  
Old August 27th, 2008, 05:05 AM
Andrew Poulos
Guest
 
Posts: n/a
Default regexp help on part match

I have a string that looks like this

"cmi.interactions.fred.id"

I need to test that:
- the first part of the string is "cmi.interactions." (case sensitive).
- the last part of the string is ".id" (case sensitive).
- that there's 1 or more characters between the 2nd and third dots (in
the above example its "fred")
- that there's only 3 dots in the whole string

Could someone please write a regexp for me. I've had a few goes but it
keeps failing.

Andrew Poulos

  #2  
Old August 27th, 2008, 05:15 AM
Lasse Reichstein Nielsen
Guest
 
Posts: n/a
Default Re: regexp help on part match

Andrew Poulos <ap_prog@hotmail.comwrites:
Quote:
I have a string that looks like this
>
"cmi.interactions.fred.id"
>
I need to test that:
- the first part of the string is "cmi.interactions." (case sensitive).
- the last part of the string is ".id" (case sensitive).
- that there's 1 or more characters between the 2nd and third dots (in
the above example its "fred")
- that there's only 3 dots in the whole string
>
Could someone please write a regexp for me. I've had a few goes but it
keeps failing.
First, why use a regexp?

var valid =
string.length 20 &&
string.substring(0,17) == "cmi.interactions." &&
string.substring(string.length-3) == ".id" &&
string.indexOf(".",17) == string.length - 3;

But if you insist on a regexp:
/^cmi\.interactions\.[^.]+\.id$/

/L
--
Lasse Reichstein Nielsen
DHTML Death Colors: <URL:http://www.infimum.dk/HTML/rasterTriangleDOM.html>
'Faith without judgement merely degrades the spirit divine.'
  #3  
Old August 27th, 2008, 05:25 AM
Andrew Poulos
Guest
 
Posts: n/a
Default Re: regexp help on part match

Lasse Reichstein Nielsen wrote:
Quote:
Andrew Poulos <ap_prog@hotmail.comwrites:
>
Quote:
>I have a string that looks like this
>>
>"cmi.interactions.fred.id"
>>
>I need to test that:
>- the first part of the string is "cmi.interactions." (case sensitive).
>- the last part of the string is ".id" (case sensitive).
>- that there's 1 or more characters between the 2nd and third dots (in
>the above example its "fred")
>- that there's only 3 dots in the whole string
>>
>Could someone please write a regexp for me. I've had a few goes but it
>keeps failing.
>
First, why use a regexp?
There's about a dozen items that start with "cmi.interactions" bu have
different endings.
Quote:
var valid =
string.length 20 &&
string.substring(0,17) == "cmi.interactions." &&
string.substring(string.length-3) == ".id" &&
string.indexOf(".",17) == string.length - 3;
>
But if you insist on a regexp:
/^cmi\.interactions\.[^.]+\.id$/
>
/L
Thank you.

Andrew Poulos
  #4  
Old August 27th, 2008, 12:05 PM
pr
Guest
 
Posts: n/a
Default Re: regexp help on part match

Lasse Reichstein Nielsen wrote:
Quote:
Andrew Poulos <ap_prog@hotmail.comwrites:
>
Quote:
>I have a string that looks like this
>>
>"cmi.interactions.fred.id"
>>
>I need to test that:
>- the first part of the string is "cmi.interactions." (case sensitive).
>- the last part of the string is ".id" (case sensitive).
>- that there's 1 or more characters between the 2nd and third dots (in
>the above example its "fred")
>- that there's only 3 dots in the whole string
>>
>Could someone please write a regexp for me. I've had a few goes but it
>keeps failing.
>
First, why use a regexp?
>
var valid =
string.length 20 &&
string.substring(0,17) == "cmi.interactions." &&
string.substring(string.length-3) == ".id" &&
string.indexOf(".",17) == string.length - 3;
Alternatively:

var parts = string.split(".");
var isValid = parts.length == 4 && parts[0] == "cmi" &&
parts[1] == "interactions" && parts[2] != "" && parts[3] == "id";
  #5  
Old August 27th, 2008, 03:45 PM
Lasse Reichstein Nielsen
Guest
 
Posts: n/a
Default Re: regexp help on part match

Andrew Poulos <ap_prog@hotmail.comwrites:
Quote:
Lasse Reichstein Nielsen wrote:
Quote:
>First, why use a regexp?
>
There's about a dozen items that start with "cmi.interactions" bu have
different endings.
You'll need different regexps for those too.
But it's not a problem to generalize:

function isValid(string, ending) {
var el = ending.length;
var sl = string.length;
return string.length 18+el &&
string.substring(0,17) == "cmi.interactions." &&
string.indexOf(".",17) == sl-el-1 &&
string.substring(sl-el) == ending;
}


/L
--
Lasse Reichstein Nielsen
DHTML Death Colors: <URL:http://www.infimum.dk/HTML/rasterTriangleDOM.html>
'Faith without judgement merely degrades the spirit divine.'
 

Bookmarks

Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On

Popular Articles

What is Bytes?

We are a network of experts and professionals in IT and software development that help one another with answers to tough questions and share insights. Get the best answers to your questions from over 220,989 network members.