Connecting Tech Pros Worldwide Help | Site Map

regexp help on part match

Andrew Poulos
Guest
 
Posts: n/a
#1: Aug 27 '08
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
Lasse Reichstein Nielsen
Guest
 
Posts: n/a
#2: Aug 27 '08

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.'
Andrew Poulos
Guest
 
Posts: n/a
#3: Aug 27 '08

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
pr
Guest
 
Posts: n/a
#4: Aug 27 '08

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";
Lasse Reichstein Nielsen
Guest
 
Posts: n/a
#5: Aug 27 '08

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.'
Closed Thread