正则学习
Regex相关
! function() {
var reg = /\d+/;
var flag = reg.test('hello123');
console.assert(flag);
flag = reg.test('halo');
console.assert(!flag);
}();
! function() {
var reg = /a/;
var substr = reg.exec('jack is a person!');
console.assert(substr['0'] == 'a' && substr.index == 1);
var substr = reg.exec('jack is a person!');
console.assert(substr['0'] == 'a' && substr.index == 1);
var reg2 = /a/g;
var substr = reg2.exec('jack is a person!');
console.assert(substr['0'] == 'a' && substr.index == 1);
var substr = reg2.exec('jack is a person!');
console.assert(substr['0'] == 'a' && substr.index == 8);
var reg3 = /a+/;
var substr = reg3.exec('he is aaaa');
console.assert(substr['0'] == 'aaaa');
var reg4 = /a/g;
var str = 'jack is a person';
console.assert(reg4.lastIndex == 0);
reg4.exec(str);
console.assert(reg4.lastIndex == 2);
reg4.exec(str);
console.assert(reg4.lastIndex == 9);
var substr = reg4.exec('a man');
console.assert(substr === null);
reg4.lastIndex = 0;
var substr = reg4.exec('a man');
console.assert(substr.index === 0 && substr['0'] == 'a');
}();
! function() {
var reg = /a/;
console.assert(reg.test('a'));
reg.compile('b');
console.assert(reg.test('b'));
}();
! function() {
var reg = /abc/i;
var reg2 = /abc/;
console.assert(reg.test('Abc'));
console.assert(!reg2.test('Abc'));
var reg = /^a[\S\n]*b$/;
var reg2 = /^a[\S\n]*b$/m;
var str = 'akkkkb\ntttttb';
var str2 = 'akkkk\ntttttb';
var str3 = 'akkkkb\nttttt';
console.assert(reg.test(str));
console.assert(!reg.test(str3));
console.assert(reg2.test(str2));
console.assert(reg2.test(str3));
}();
String相关
! function() {
var str = 'jack is a person';
var index = str.search(/a/);
console.assert(index == 1);
var index = str.search(/a/);
console.assert(index == 1);
}();
! function() {
var reg = /(\w)\1/;
var reg2 = /(\w)\1/g;
var str = 'egg is not an apple, hh';
var rst = str.match(reg);
console.assert(rst.length == 2 && rst[0] == 'gg' && rst[1] == 'g');
var rst = str.match(reg2);
console.assert(rst.length == 3 && rst[0] == 'gg' && rst[1] == 'pp' && rst[2] == 'hh');
}();
! function() {
var str = 'aaa-bbb';
var str2 = str.replace(/\-\w/, function(word) {
return word.replace(/\-/, '').toUpperCase();
});
console.assert(str2 === 'aaaBbb');
var str3 = str.replace(/-(\w)/, function(a1, a2) {
return a2.toUpperCase();
});
console.assert(str3 === 'aaaBbb');
}();
! function() {
var str = 'jack is a person';
var arr = str.split(/a/);
console.assert(arr[0] === 'j');
console.assert(arr[1] === 'ck is ');
console.assert(arr[2] === ' person');
}();