/^(\w{1,15})@(?!-)([a-z0-9]*-?[a-z0-9]*[a-z0-9](?!-)\.(?!-))+[a-z]{2,4}$/
@前匹配数字、字母、下划线,长度为1-15位@之后不能有-,然后域名的每一项为数字、字母、-的重复,-在每一组域名中最多只能有一个,且不能在组的开头或者末尾,即123-cd符合,但-12或12-或qq--cd不符合- 最后一项为纯字母,长度为2-4位
示例:
var reg = /^(\w{1,15})@(?!-)([a-z0-9]*-?[a-z0-9]*[a-z0-9](?!-)\.(?!-))+[a-z]{2,4}$/;
reg.test('chshouyu@126.com') // true
reg.test('chshouyu@126.123.abc.com') // true
reg.test('chshouyu@-126.com') // false
reg.test('chshouyu@126-.com') // false
reg.test('chshouyu@126.12-3.com') // true
reg.test('chshouyu@126.12--3.com') // false/(?:\?|&)(\w+?)=(\w*)/g
操作代码:
var url = 'http://www.abc.com/get?name=chen&age=25&test=';
var reg = /(?:\?|&)(\w+?)=(\w*)/g; // 不完善,视情况而定
var r, arr = [];
while (r = reg.exec(url)) {
arr.push({
key: r[1],
value: r[2]
});
}
// result: [{key: 'name', value: 'chen'}, {key: 'age', value: 25}, {key: 'test', value: ''}]var getTime = function(date) {
var date = date || new Date(),
year = date.getFullYear(),
month = date.getMonth() + 1,
day = date.getDate(),
hour = date.getHours(),
min = date.getMinutes(),
sec = date.getSeconds();
return (year + '-' + month + '-' + day + ' ' + hour + ':' + min + ':' + sec).replace(/([\-\/:\s])(\d)(?!\d)/g, '$10$2');
};
// "2014-4-7 14:3:44" --> "2014-04-07 14:03:44"/([\-\/:\s])(\d)(?!\d)/g为寻找以-,:,/开头的单个数字,然后替换成以0开头的组合
var arr = [1, 2, 6, 5, 8, 10, 22, 'hello'];var getRandomArray = function(array, length) {
var length = length || array.length;
array.sort(function() {
return Math.random() - 0.5;
});
return array.slice(0, length);
};var getRandomArray = function(array, length) {
var length = length || array.length,
newArr = [],
randomIndex,
removed;
array.forEach(function(elem, index) {
randomIndex = Math.floor(Math.random() * index);
removed = newArr.splice(randomIndex, 1, elem);
removed.length && newArr.push(removed[0]);
});
return newArr.slice(0, length);
};underscore的实现方法,交换随机索引