| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151 |
- //-------------------------------------------------------------------------------------------------------
- // Copyright (C) Microsoft. All rights reserved.
- // Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
- //-------------------------------------------------------------------------------------------------------
- function write(v) { WScript.Echo(v + ""); }
- var groups = {};
- function Assert(condition, category)
- {
- if (!groups[category]) {
- groups[category] = 1;
- } else {
- groups[category]++;
- }
- if (!condition) {
- write(category + " test " + groups[category] + " failed");
- } else {
- write(category + " test " + groups[category] + " passed");
- }
- }
- write("regex test1");
- var re = /a/;
- var str = new String("abcda");
- if (re.test(str)) {
- write(" regex.test pass");
- }
- else {
- write(" regex.test fail");
- }
- if (str.match(re)) {
- write(" string.match pass");
- }
- else {
- write(" string.match fail");
- }
- var array = re.exec(str);
- write(" string.exec : " + array);
- var s = "";
- var a = s.split(/\s+/);
- write("a.length : " + a.length);
- write("a[0]:" + a[0]);
- var reTemp = /abc/i;
- var re = new RegExp(reTemp, "g");
- var tmp = "abcdef".replace(re, "");
- Assert(re.lastIndex == 0, "lastIndex");
- var re = new RegExp(/abc/i, "g");
- var tmp = "abcdef".match(re);
- Assert(re.lastIndex == 0, "lastIndex");
- var re = new RegExp(/abc/g);
- re.exec("abcdef");
- Assert(re.lastIndex == 3, "lastIndex");
- var re = /abc/;
- re.exec("abcdef");
- Assert(re.lastIndex == 0, "lastIndex");
- var re = new RegExp(/abc/g, "i");
- Assert(re.global == false, "global");
- Assert(re.ignoreCase == true, "ignoreCase");
- var re = /abc/i;
- var re1 = new RegExp(re, "gm");
- Assert(re.global == false, "global");
- Assert(re.multiline == false, "multiline");
- Assert(re.ignoreCase == true, "ignoreCase");
- Assert(re1.global == true, "global");
- Assert(re1.multiline == true, "multiline");
- Assert(re1.ignoreCase == false, "ignoreCase");
- var exceptionThrown = false;
- try
- {
- var re = new RegExp(/a/g, "ab");
- }
- catch (ex)
- {
- exceptionThrown = true;
- }
- Assert(exceptionThrown, "invalid flags");
- var re = /(ab)/g
- "abc ".match(re);
- Assert(RegExp.$1 == "ab", "lastIndex");
- var re = /test/;
- var exceptionThrown = false;
- try
- {
- re.lastIndex = { toString: function() { throw "an exception string"; } }
- }
- catch (ex)
- {
- exceptionThrown = true;
- }
- Assert(exceptionThrown == false, "lastIndex");
- exceptionThrown = false;
- try
- {
- Write("LastIndex is " + re.lastIndex);
- }
- catch (ex)
- {
- exceptionThrown = true;
- }
- Assert(exceptionThrown == true, "lastIndex");
- function testsc(r, s) {
- if (!r.test(s))
- write("invalid interpretation of '" + r + "'");
- }
- testsc(/^\cA$/, "\x01");
- testsc(/^[\cA]$/, "\x01");
- testsc(/^\c1$/, "\\c1");
- testsc(/^\c$/, "\\c");
- testsc(/\c/, "\\c");
- testsc(/^\c\1$/, "\\c\x01");
- testsc(/\c/, "\\c");
- testsc(/^[\c1]$/, "\x11");
- testsc(/^[\c]$/, "c");
- testsc(/^[\c]]$/, "c]");
- testsc(/^[\c-e]+$/, "cde");
- //Octal handling
- testsc(/^\777$/, "\x3F7");
- testsc(/^\777$/, "\777");
- testsc(/^\170$/, "x");
- //Octal handling test for values > 127
- c=[/[\300-\306]/g,"A",/[\340-\346]/g,"a",/\307/g,"C",/\347/g,"c",/[\310-\313]/g,"E",/[\350-\353]/g,"e",/[\314-\317]/g,"I",/[\354-\357]/g,"i",/\321/g,"N",/\361/g,"n",/[\322-\330]/g,"O",/[\362-\370]/g,"o",/[\331-\334]/g,"U",/[\371-\374]/g,"u"];
- //Negation of empty char set [^] test
- write("aa".match(/([^])(\1)/));
|