js/src/tests/js1_2/regexp/digit.js

changeset 0
6474c204b198
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/js/src/tests/js1_2/regexp/digit.js	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,86 @@
     1.4 +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
     1.5 +/* This Source Code Form is subject to the terms of the Mozilla Public
     1.6 + * License, v. 2.0. If a copy of the MPL was not distributed with this
     1.7 + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
     1.8 +
     1.9 +
    1.10 +/**
    1.11 +   Filename:     digit.js
    1.12 +   Description:  'Tests regular expressions containing \d'
    1.13 +
    1.14 +   Author:       Nick Lerissa
    1.15 +   Date:         March 10, 1998
    1.16 +*/
    1.17 +
    1.18 +var SECTION = 'As described in Netscape doc "Whats new in JavaScript 1.2"';
    1.19 +var VERSION = 'no version';
    1.20 +startTest();
    1.21 +var TITLE   = 'RegExp: \\d';
    1.22 +
    1.23 +writeHeaderToLog('Executing script: digit.js');
    1.24 +writeHeaderToLog( SECTION + " "+ TITLE);
    1.25 +
    1.26 +var non_digits = "_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\f\n\r\t\v~`!@#$%^&*()-+={[}]|\\:;'<,>./? " + '"';
    1.27 +
    1.28 +var digits = "1234567890";
    1.29 +
    1.30 +// be sure all digits are matched by \d
    1.31 +new TestCase ( SECTION,
    1.32 +	       "'" + digits + "'.match(new RegExp('\\d+'))",
    1.33 +	       String([digits]), String(digits.match(new RegExp('\\d+'))));
    1.34 +
    1.35 +// be sure all non-digits are matched by \D
    1.36 +new TestCase ( SECTION,
    1.37 +	       "'" + non_digits + "'.match(new RegExp('\\D+'))",
    1.38 +	       String([non_digits]), String(non_digits.match(new RegExp('\\D+'))));
    1.39 +
    1.40 +// be sure all non-digits are not matched by \d
    1.41 +new TestCase ( SECTION,
    1.42 +	       "'" + non_digits + "'.match(new RegExp('\\d'))",
    1.43 +	       null, non_digits.match(new RegExp('\\d')));
    1.44 +
    1.45 +// be sure all digits are not matched by \D
    1.46 +new TestCase ( SECTION,
    1.47 +	       "'" + digits + "'.match(new RegExp('\\D'))",
    1.48 +	       null, digits.match(new RegExp('\\D')));
    1.49 +
    1.50 +var s = non_digits + digits;
    1.51 +
    1.52 +// be sure all digits are matched by \d
    1.53 +new TestCase ( SECTION,
    1.54 +	       "'" + s + "'.match(new RegExp('\\d+'))",
    1.55 +	       String([digits]), String(s.match(new RegExp('\\d+'))));
    1.56 +
    1.57 +var s = digits + non_digits;
    1.58 +
    1.59 +// be sure all non-digits are matched by \D
    1.60 +new TestCase ( SECTION,
    1.61 +	       "'" + s + "'.match(new RegExp('\\D+'))",
    1.62 +	       String([non_digits]), String(s.match(new RegExp('\\D+'))));
    1.63 +
    1.64 +var i;
    1.65 +
    1.66 +// be sure all digits match individually
    1.67 +for (i = 0; i < digits.length; ++i)
    1.68 +{
    1.69 +  s = 'ab' + digits[i] + 'cd';
    1.70 +  new TestCase ( SECTION,
    1.71 +		 "'" + s + "'.match(new RegExp('\\d'))",
    1.72 +		 String([digits[i]]), String(s.match(new RegExp('\\d'))));
    1.73 +  new TestCase ( SECTION,
    1.74 +		 "'" + s + "'.match(/\\d/)",
    1.75 +		 String([digits[i]]), String(s.match(/\d/)));
    1.76 +}
    1.77 +// be sure all non_digits match individually
    1.78 +for (i = 0; i < non_digits.length; ++i)
    1.79 +{
    1.80 +  s = '12' + non_digits[i] + '34';
    1.81 +  new TestCase ( SECTION,
    1.82 +		 "'" + s + "'.match(new RegExp('\\D'))",
    1.83 +		 String([non_digits[i]]), String(s.match(new RegExp('\\D'))));
    1.84 +  new TestCase ( SECTION,
    1.85 +		 "'" + s + "'.match(/\\D/)",
    1.86 +		 String([non_digits[i]]), String(s.match(/\D/)));
    1.87 +}
    1.88 +
    1.89 +test();

mercurial