Source code
Revision control
Copy as Markdown
Other Tools
/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
/**
* File Name: RegExp/multiline-001.js
* ECMA Section:
* Description: Based on ECMA 2 Draft 7 February 1999
*
* Date: 19 February 1999
*/
var SECTION = "RegExp/multiline-001";
var TITLE = "RegExp: multiline flag";
var BUGNUMBER="343901";
printBugNumber(BUGNUMBER);
var woodpeckers = "ivory-billed\ndowny\nhairy\nacorn\nyellow-bellied sapsucker\n" +
"northern flicker\npileated\n";
AddRegExpCases( /.*[y]$/m, woodpeckers, woodpeckers.indexOf("downy"), ["downy"] );
AddRegExpCases( /.*[d]$/m, woodpeckers, woodpeckers.indexOf("ivory-billed"), ["ivory-billed"] );
test();
function AddRegExpCases
( regexp, pattern, index, matches_array ) {
// prevent a runtime error
if ( regexp.exec(pattern) == null || matches_array == null ) {
AddTestCase(
regexp + ".exec(" + pattern +")",
matches_array,
regexp.exec(pattern) );
return;
}
AddTestCase(
regexp.toString() + ".exec(" + pattern +").length",
matches_array.length,
regexp.exec(pattern).length );
AddTestCase(
regexp.toString() + ".exec(" + pattern +").index",
index,
regexp.exec(pattern).index );
AddTestCase(
regexp + ".exec(" + pattern +").input",
pattern,
regexp.exec(pattern).input );
for ( var matches = 0; matches < matches_array.length; matches++ ) {
AddTestCase(
regexp + ".exec(" + pattern +")[" + matches +"]",
matches_array[matches],
regexp.exec(pattern)[matches] );
}
}