Skip to content

Instantly share code, notes, and snippets.

View jasonweng's full-sized avatar

jason jasonweng

  • The Plant
  • Hangzhou China
View GitHub Profile
@jasonweng
jasonweng / Promise.js
Created March 14, 2018 07:19
Front end interview tests
var p1=new Promise(resolve => {
console.log(1)
resolve(2)
})
var p2=new Promise(resolve => {
console.log(3)
resolve(p1)
})
p1.then(re => {
console.log(re)
@jasonweng
jasonweng / ajax-file-download.js
Created April 21, 2017 08:13
handle file download from AJAX POST
// XMLHttpRequest
var xhr = new XMLHttpRequest();
xhr.open('POST', url, true);
xhr.responseType = 'arraybuffer';
xhr.onload = function () {
if (this.status === 200) {
var filename = "";
var disposition = xhr.getResponseHeader('Content-Disposition');
if (disposition && disposition.indexOf('attachment') !== -1) {
var filenameRegex = /filename[^;=\n]*=((['"]).*?\2|[^;\n]*)/;
@jasonweng
jasonweng / Sortable.jsx
Created January 14, 2017 02:45 — forked from superKalo/ Sortable.jsx
How to use jQuery UI with React JS? You can use this approach to integrate almost any jQuery plugin! Full details and explanation here: http://stackoverflow.com/a/40350880/1333836
class Sortable extends React.Component {
componentDidMount() {
// Every React component has a function that exposes the
// underlying DOM node that it is wrapping. We can use that
// DOM node, pass it to jQuery and initialize the plugin.
// You'll find that many jQuery plugins follow this same pattern
// and you'll be able to pass the component DOM node to jQuery
// and call the plugin function.
var RegCheck = {
/**
* 正規表示式
*/
_reg:{
// Email正規表示式
email: /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/,
// 非「英文大小寫」和「數字」出現過一次
not_en_digital_least1: /[^a-zA-Z0-9]+/,
// 「英文大小寫」和「數字」各出現過一次(a1,b2...)
@jasonweng
jasonweng / Get contents of link tag with javascript - not CSS
Last active December 30, 2015 08:38
Get contents of link tag with javascript - not CSS
@jasonweng
jasonweng / gist:3870560
Created October 11, 2012 06:23
css3 button
.admin-mode-slider
height: 24px
margin-left: 10px
background-color: #555
@include border-radius(6px)
position: relative
@include box-shadow(0 0 6px 0 hsla(0, 0%, 0%, 0.25))
.overlay
position: absolute
// as of 1.4.2 the mobile safari reports wrong values on offset()
// http://dev.jquery.com/ticket/6446
// remove once it's fixed
if ( /webkit.*mobile/i.test(navigator.userAgent)) {
(function($) {
$.fn.offsetOld = $.fn.offset;
$.fn.offset = function() {
var result = this.offsetOld();
result.top -= window.scrollY;
result.left -= window.scrollX;
@jasonweng
jasonweng / array_distinct.js
Created December 19, 2011 14:00 — forked from fundon/array_distinct.js
array distinct , JavaScript
//http://lijing00333.wordpress.com/2011/02/08/%E6%95%B0%E7%BB%84%E5%8E%BB%E9%87%8D%E2%80%94%E2%80%94%E4%B8%80%E9%81%93%E5%89%8D%E7%AB%AF%E6%A0%A1%E6%8B%9B%E8%AF%95%E9%A2%98/
// [1,2,2,2,3,4,5].toString().match(/(\d)(?!.*,\1)/g);
Array.prototype.distinct = function() {
var o = {}, i = 0, l = this.length;
for (; i < l;) {
if (!o.hasOwnProperty(this[i])) {
o[this[i++]] = 1;
} else {
this.splice(i, 1);
@jasonweng
jasonweng / README.md
Created December 9, 2011 07:21 — forked from chrisjacob/README.md
Node.js Install + CoffeeScript + LESS (+TextMate Bundles)