Skip to content

Instantly share code, notes, and snippets.

@vace
vace / slice_utf8str.js
Created Dec 27, 2019
utf-8字符裁剪
View slice_utf8str.js
function slice_utf8str(str, maxLen) {
var len = str.length
var _len = 0
var i = 0
for (; i < len; i++) {
_len += str.charCodeAt(i) < 256 ? 1 : 2
if (_len > maxLen) break
}
return str.slice(0, i)
}
@vace
vace / editor.js
Last active Sep 9, 2019
微信排版编辑器小脚本
View editor.js
/**
* 支持:135,96,365,小蚂蚁编辑器
*/
;(function () {
var host = location.host
var isDomain = function (t) {
return host.indexOf(t) !== -1
}
var showOk = function (t) {
@vace
vace / csvTextParser.js
Last active Mar 15, 2020
csv text parse object
View csvTextParser.js
/**
* [csvTextParser 简单的csv文本解析器]
* @param {string} text [csv文本]
* @param {boolean} columns [读取第一行做为表头]
* @param {array} columns [列配置]
* @param {string} columns[i].field 字段名
* @param {int} columns[i].index? 对应列索引,默认为i
* @param {int} columns[i].trim? 是否首尾去空
* @param {string|Function} columns[i].type 字段类型(int,float,string,boolean,function)
* @param {object} options [解析配置]
View debounce.js
function debounce(func, wait, immediate){
var timeout, args, context, timestamp, result;
if (null == wait) wait = 100;
function later() {
var last = Date.now() - timestamp;
if (last < wait && last >= 0) {
timeout = setTimeout(later, wait - last);
} else {
@vace
vace / wxapkg.php
Created Jul 18, 2017
微信小程序包解包
View wxapkg.php
<?php
/* from : https://github.com/Clarence-pan/unpack-wxapkg */
function unpack_wxapkg($file, $targetDir)
{
if (!is_dir($targetDir)){
mkdir($targetDir);
}
echo "Reading file.\n";
@vace
vace / encode-csv.js
Created Jun 29, 2017
csv encode and export
View encode-csv.js
/**
* csv data encode
* var data = [[1850, 20, 0, 1, 1017281], [1850, 20, 0, 2, 1003841]];
* encode(data)
* encode(data,{ header: ["year", "age", "status", "sex", "population"] })
* encode([{age:xx,name:'xxx'}], {header:true})
* options:{ delimiter:'分隔符',newline:换行符,skip:头部跳过数量,header:Object或者arrat }
*/
const CELL_DELIMITERS = [',', ';', '\t', '|', '^']
@vace
vace / simple-time-format
Last active Jan 29, 2018
javascript function
View simple-time-format
const REPLACE_REGEX = /(Y|M|D|H|I|S|T)/ig
export function timeFormat(unixTime, format = 'Y-M-D H:i:s') {
var time = new Date(unixTime * 1000)
var conf = {
Y: time.getFullYear(),
M: pad(time.getMonth() + 1), //月份
D: pad(time.getDate()), //日
H: pad(time.getHours()), //小时
I: pad(time.getMinutes()), //分
S: pad(time.getSeconds()), //秒
@vace
vace / uniqueElementPath.js
Created Apr 18, 2017
getUniquePath(document.querySelector('img')) => html>body>div>div>div>div:nth-child(2)>table>tbody>tr>th:nth-child(2)>div>img
View uniqueElementPath.js
function getUniquePath(element){
if(element.nodeType !== Node.ELEMENT_NODE){
throw new Error('element must be element node')
}
if(element.id){
return '#' + element.id
}
var path = ''
while(element){
var name = element.localName
@vace
vace / renderString.js
Created Apr 12, 2017
解析辅助类字符串:Now Time ${time}
View renderString.js
function renderParser(string,data){
const S_CODE = 0x24 // start CODE $
const S_LEFT = 0x7b // {
const S_RIGHT = 0x7d // }
const S_SPACE = 0x20
let length = string.length
let at = 0,code,expession = '',expessionResult = ''
let isEnterExpression = false
let result = ''
function charAt(at){
@vace
vace / flex.css
Created Feb 12, 2017
css3 flex layout
View flex.css
.row {
box-sizing: border-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
-webkit-flex: 0 1 auto;
-ms-flex: 0 1 auto;
flex: 0 1 auto;
-webkit-flex-direction: row;
-ms-flex-direction: row;
You can’t perform that action at this time.