rozdział: Wyrażenia Regularne
==================
var parse_url = /^(?:([A-Za-z]+):)?(\/{0,3})([0-9.\-A-Za-z]+)
(?::(\d+))?(?:\/([^?#]*))?(?:\?([^#]*))?(?:#(.*))?$/;

var url = "http://www.ora.com:80/goodparts?q#fragment";
    
    
====================================
var url = "http://www.ora.com:80/goodparts?q#fragment";

var result = parse_url.exec(url);

var names = ['url', 'protokół', 'ukośniki', 'serwer', 'port', 
    'ścieżka', 'zapytanie', 'zakotwiczenie'];

var blanks = '              ';
var i;

for (i = 0; i < names.length; i += 1) {
   document.writeln(names[i] + ':' + blanks.substring(names[i].length), result[i]);
}
    
    
====================================
url:           http://www.ora.com:80/goodparts?q#fragment
protokół:      http
ukośniki:      //
serwer:        www.ora.com
port:          80
ścieżka:       goodparts
zapytanie:     q
zakotwiczenie: fragment
    
    
====================================
^
    
    
====================================
(?:([A-Za-z]+):)?
    
    
====================================
(\/{0,3})
    
    
====================================
([0-9.\-A-Za-z]+)
    
    
====================================
(?::(\d+))?
    
    
====================================
(?:\/([^?#]*))?
    
    
====================================
(?:\?([^#]*))?
    
    
====================================
(?:#(.*))?
    
    
====================================
$
    
    
====================================
var parse_number = /^-?\d+(?:\.\d*)?(?:e[+\-]?\d+)?$/i;

var test = function (num) {
    document.writeln(parse_number.test(num));
};

test('1');                // true
test('number');           // false
test('98.6');             // true
test('132.21.86.100');    // false
test('123.45E-67');       // true
test('123.45D-67');       // false
    
    
====================================
/^   $/i
    
    
====================================
-?
    
    
====================================
\d+
    
    
====================================
(?:\.\d*)?
    
    
====================================
(?:e[+\-]?\d+)?
    
    
====================================
// Tworzymy obiekt wyrażenia regularnego dopasowującego
// łańcuchy tekstowe JavaScriptu.

var my_regexp = /"(?:\\.|[^\\\"])*"/g;
    
    
====================================
// Tworzymy obiekt wyrażenia regularnego dopasowującego
// łańcuchy tekstowe JavaScriptu.

var my_regexp = new RegExp("\"(?:\\\\.|[^\\\\\\\"])*\"", 'g');
    
    
====================================
function make_a_matcher() {
   return /a/gi;
}

var x = make_a_matcher();
var y = make_a_matcher();

// Uwaga: x oraz y wskazują na ten sam obiekt!

x.lastIndex = 10;

document.writeln(y.lastIndex);  // 10
    
    
====================================
"into".match(/in|int/)
    
    
====================================
\ / [ ] ( ) { } ? + * | . ^ $
    
    
====================================
var doubled_words =
    /[A-Za-z\u00C0-\u1FFF\u2800-\uFFFD'\-]+\s+\1/gi;
    
    
====================================
! " # $ % & ' ( ) * +, - . / :
; < = > ? @ [ \ ] ^ _ ` { | } ˜
    
    
====================================
(?:!|"|#|\$|%|&|'|\(|\)|\*|\+|,|-|\.|\/|:|;|<|=|>|@|\[|\\|]|\^|_|` |\{|\||\}|˜)
    
    
====================================
[!-\/:-@\[-`{-˜]
    
    
====================================
- / [ \ ] ^
    
    
==================