mirror of https://github.com/svaarala/duktape.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
45 lines
1.8 KiB
45 lines
1.8 KiB
/*
|
|
* IPv6 regexp test from:
|
|
*
|
|
* http://forums.dartware.com/viewtopic.php?t=452
|
|
*
|
|
* Note: Smjs and Rhino agree on the result, so the expected result is set
|
|
* based on that. The expected result hasn't been verified otherwise.
|
|
*/
|
|
|
|
var re;
|
|
var m;
|
|
var i;
|
|
|
|
/*===
|
|
fe80:0000:0000:0000:0204:61ff:254.157.241.86
|
|
fe80:0000:0000:0000:0204:61ff:254.157.241.86
|
|
undefined
|
|
undefined
|
|
undefined
|
|
fe80:0000:0000:0000:0204:61ff:254.157.241.86
|
|
61ff:
|
|
254.157.241.86
|
|
254.157.241.86
|
|
254
|
|
.86
|
|
86
|
|
undefined
|
|
undefined
|
|
undefined
|
|
===*/
|
|
|
|
re = /^\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\s*$/;
|
|
|
|
m = re.exec('fe80:0000:0000:0000:0204:61ff:254.157.241.86');
|
|
|
|
for (i = 0; i < 15; i++) {
|
|
print (m[i]);
|
|
}
|
|
|
|
/*===
|
|
null
|
|
===*/
|
|
|
|
m = re.exec('fe80:0000:0000:0000:0204:61ff:254.157.241.256'); // 256 -> invalid
|
|
print(m);
|
|
|