Skip to content

Instantly share code, notes, and snippets.

View GZShi's full-sized avatar
🎯
Focusing

Guozhong Shi GZShi

🎯
Focusing
View GitHub Profile
@GZShi
GZShi / regex_search.js
Created March 25, 2014 06:44
REGEX: window.location.search
// version 1
function search(name) {
name = name.replace(/[\[]/g, '\\\[').replace(/[\]]/g, '\\\]');
name = encodeURIComponent(name);
var regex = new Regex('[/?&]' + name + '=([^&#]*)');
var results = regex.exec(window.location.search);
return results === null ? '' : decodeURIComponent(results[1]);
}
// version 2
#include <stdio.h>
struct str
{
int len;
char s[0];
};
struct foo
{
@GZShi
GZShi / load.js
Created April 22, 2014 09:32
超简易脚本加载
// 简易ajax
function ajax(options) {
var xhr = new XMLHttpRequest();
xhr.open(options.type, options.url, true);
xhr.send(options.data || '');
xhr.onreadystatechange = function() {
if(xhr.readyState === 4 && xhr.status === 200) {
@GZShi
GZShi / mix.js
Created April 24, 2014 15:45
交集
function mix(arrays) {
if (arguments.length < 1) return [];
var allElems = [];
var repeatRegStr = [];
for (var i = 0, len = arguments.length; i < len; ++i) {
if (i === 0) {
repeatRegStr.push('(-?(?!0\\d)\\d+(?:\\.\\d+|)(?:[eE][+-]?\\d+|))');
} else {
@GZShi
GZShi / pending.js
Created May 21, 2014 03:28
高阶函数在异步编程中的使用
// 模拟费时的异步操作
function asyncCall(fn) {
var t = (Math.random()*3 + 2) * 1000;
setTimeout(function() {
fn(t);
}, t);
}
// 写日志
function trace(info) {
@GZShi
GZShi / fibonacci.js
Created July 28, 2014 09:53
斐波那契通项公式
function mulMatrix(a, b) {
return [
a[0]*b[0] + a[1]*b[2],
a[0]*b[1] + a[1]*b[3],
a[1]*b[0] + a[3]*b[2],
a[1]*b[1] + a[3]*b[3]
];
}
function powMatrix(a, n) {
@GZShi
GZShi / webqq_auto.js
Last active August 29, 2015 14:05
web qq 自动消息
// 1. 打开 http://w.qq.com
// 2. 登录
// 3. 选择交谈对象
// 4. 进入控制台
// 5. 粘贴运行
// 6. Chrome
(function () {
var textNode = $('#chat_textarea');
var sendBtn = $('#send_chat_btn');
@GZShi
GZShi / proxy.ini.bak
Created September 9, 2014 02:01
b3BlbntNzbCBlbmMgLWFlcy0xMjgtY2JjIC1kIC1wYXNzIHBhc3M6Cg==
U2FsdGVkX1+LjAu66wH3YKi/0y+/9zwmRH/m51CbZ6Xugm1vIskAIAuefSPRJbwI
BYevFe0yFe0Jc5kKICRgEj/gQ2tL8ypcsjJbiNll8KkQO+hZAaPrkBSTHTgDrrC9
qCsNgytGl6o6XiP2cs7kVinRMdyec9pwqKFRzrSlO8fFaWvIH2eUiavsnOoWeQUB
APSKI17IjcqKAeFDzTwTiJ5HzB4VvIVZmyU2bTLtH9YuSaVSSH+87OCDEakHG6jE
uENsvY4odmQKzJjcZlaiFQZsS56r5/bu597z3o21ikFIlKsLpFwDPlkpvrDtduk+
TDAiAk7zSuf63HFcd76MCUck9ZkZKSG+Ic21ORpwJQUIDPTm/L0EG70NBz6NTy1f
0aNZ6e/Z7mXeSDJlqDX+cByQSWdSoSkW1cKzpNbc39L/TYj+KhFhQERUGmr/k2oF
A06EkusW5+ddO3kglvWWzJJFm0uKe6HJhL5QIIIn1dK4nwKujHhL/jeCasozF8d6
AB4+FojORr/zWzmOiHSdq1zV82f9sqRGBXoBPIX8SojGtgHqjR2JNEDqCU0XxZSY
mMsq5/ENc/1mGYn1Am61ii0T6WPCnPxztw2/Ubsgw6Amt3YE1OZitocunFoOfLL7
@GZShi
GZShi / flatten_array.js
Last active August 29, 2015 14:06
flatten array
var flattenWithReduce = (function () {
function flatten(prev, curr, i, a) {
var result;
if(Array.isArray(curr)) {
result = prev.concat(curr.reduce(flatten, []));
} else {
result = prev.concat(curr);
}
return result;
}
@GZShi
GZShi / code_snippet.js
Last active August 29, 2015 14:06
snippets
// [" 1 ", "2", "", " ", "3", "4 ", "5 "] => ["1", "2", "3", "4", "5"]
function foo(arr) {
return arr.map(function (e) {
return e.trim();
}).filter(function (e) {
return e.length > 0;
});
}