第一页 上页 8 9 10 11 12 13 14 15 16 17 下页 最后页 [ 显示模式: 摘要 | 列表 ]

JS 格式化日期

[不指定 2016/07/15 21:03 | by 刘新修 ]
JavaScript代码
  1. /***** 格式化日期 *****/  
  2. function formatDate(_strTime,_format){  
  3.     var date=new Date(_strTime);  
  4.     var paddNum=function(num){  
  5.         num+="";  
  6.         return num.replace(/^(\d)$/,"0$1");  
  7.     }  
  8.     //指定格式字符  
  9.     var cfg={  
  10.         yyyy:date.getFullYear()                         //年:4位  
  11.         ,yy :date.getFullYear().toString().substring(2) //年:2位  
  12.         ,M  :date.getMonth() + 1                        //月:如果1位的时候不补0  
  13.         ,MM :paddNum(date.getMonth()+1)                 //月:如果1位的时候补0  
  14.         ,d  :date.getDate()                             //日:如果1位的时候不补0  
  15.         ,dd :paddNum(date.getDate())                    //日:如果1位的时候补0  
  16.         ,hh :date.getHours()                            //时  
  17.         ,mm :date.getMinutes()                          //分  
  18.         ,ss :date.getSeconds()                          //秒  
  19.     }  
  20.     _format||(_format="yyyy-MM-dd hh:mm:ss");  
  21.     return _format.replace(/([a-z])(\1)*/ig,function(m){return cfg[m];});  
  22. }  
  23. formatDate("Tue Jul 16 01:07:00 CST 2013","yyyy-MM-dd ");  

webpack 是一个npm包,所以我们通过 npm 命令来全局安装:

D:\wmnp3\nodeJs>npm install webpack -g
安装完成后,命令行下就有 webpack 命令可用,执行 webpack --help 可以查看 webpack 提供的各种命令。
当然如果常规项目还是把依赖写入 package.json 包去更人性化,初始化创建一个package.json文件:
cd D:\wmnp3\wwwroot\nodeJs\MVC\helloWorld
npm init
npm install webpack --save-dev 在当前目录下安装局域的webpack
安装 sass-loader 相关的加载器:
安装 CSS 相关的加载器:
安装配置图片加载器url-loader
它会将样式中引用到的图片转为模块来处理,使用该加载器需要先进行安装:
安装 babel-loader 相关的加载器:
使用Babel转译器,帮助我们将ES6代码转译为主流浏览器支持的ES5代码。
babel-loader加载器能将ES6的代码转换成ES5代码,这使我们现在可以使用ES6了;我们在使用之前,我们需要安装babel-loader
npm install babel-loader --save-dev --registry=https://registry.npm.taobao.org
npm install babel-preset-es2015 --save-dev
安装babel-preset-es2015
安装babel-runtime
ExpressJS启动服务:http://127.0.0.1:3000
webpack相关命令如下:
webpack 最基本的启动webpack命令
webpack -w 提供watch方法,实时进行打包更新
webpack -p 对打包后的文件进行压缩
webpack -d 提供SourceMaps,方便调试
webpack --colors 输出结果带彩色,比如:会用红色显示耗时较长的步骤
webpack --profile 输出性能数据,可以看到每一步的耗时
webpack --display-modules 默认情况下 node_modules 下的模块会被隐藏,加上这个参数可以显示这些被隐藏的模块
webpack --help 帮助说明
 
webpack打包会根据依赖自动并合代码模块,使用webpack -p 压缩代码成一行.从而加快页面请求速度,使用前后对比:
压缩代码前:
压缩入口代码后:
最后附上webpack.config.js 的配置文件:
JavaScript代码
  1. var path=require("path");  
  2. var webpack=require('webpack');  
  3. var ExtractTextPlugin=require("extract-text-webpack-plugin");  
  4. /**** webpack.config.js ****/  
  5. module.exports={  
  6.     context:__dirname+'/assets', //requre('a.js')的时候从哪个路径查找  
  7.     entry:{  
  8.         main:__dirname+"/assets/js/public/main.js",  
  9.         index:__dirname+"/assets/js/public/index.js"  
  10.     },  
  11.     /**** 新添加的module属性 ****/  
  12.     output:{  
  13.         path:__dirname+'/build/js/',  
  14.         filename:'[name].bundle.js', //模版基于entry的key  
  15.         publicPath:"/xfile/" //引用你的文件时考虑使用的地址(可设成http地址, 如:http://cdn.my.com)  
  16.     },  
  17.     /**** 新添加的module属性 ****/  
  18.     module:{  
  19.         loaders:[  
  20.             {  
  21.                 test:/\.(jpg|png|svg)$/i,  
  22.                 loaders:[  
  23.                     'image?...',  
  24.                     'url?limit=10000&name=img/[name].[hash:8].[ext]',  
  25.                 ]  
  26.             },  
  27.             {  
  28.                 test:/\.js$/,  
  29.                 exclude:/(node_modules|bower_components)/,  
  30.                 loader:'babel',  
  31.                 query:{  
  32.                     presets:['es2015'],  
  33.                     plugins:['transform-runtime']  
  34.                 }  
  35.             },  
  36.             {test: /\.css$/,loader: ExtractTextPlugin.extract("style-loader","css-loader")},  
  37.             {test: /\.(jpg|png|svg)$/,loader:"url?limit=8192"},  
  38.             {test: /\.scss$/, loader:"style!css!sass"}  
  39.         ]  
  40.     },  
  41.     plugins:[  
  42.         //new webpack.optimize.CommonsChunkPlugin('common.js'),  
  43.         new ExtractTextPlugin("[name].css"),  
  44.         new webpack.ProvidePlugin({  
  45.             "jQuery":path.resolve(  
  46.                 __dirname,  
  47.                 "js/lib/jquery/jquery-1.8.3.js"  
  48.             ),  
  49.             "$":path.resolve(  
  50.                 __dirname,  
  51.                 "js/lib/jquery/jquery-1.8.3.js"  
  52.             )  
  53.         }),  
  54.     ]  
  55. }  
Tags: ,

requireJS在Node平台安装、创建build实例、JS模块化加载、打包

requireJS在Node平台上安装(推荐使用NodeJs绿色版环境套件):

C++代码
  1. npm install -g requirejs
  2. D:\wmnp3\wwwroot\nodeJs\MVC\helloWorld>npm install -g requirejs  
  3. npm http GET https://registry.npmjs.org/requirejs  
  4. npm http 200 https://registry.npmjs.org/requirejs  
  5. npm http GET https://registry.npmjs.org/requirejs/-/requirejs-2.2.0.tgz  
  6. npm http 200 https://registry.npmjs.org/requirejs/-/requirejs-2.2.0.tgz  
  7. D:\wmnp3\nodeJs\r.js -> D:\wmnp3\nodeJs\node_modules\requirejs\bin\r.js  
  8. D:\wmnp3\nodeJs\r_js -> D:\wmnp3\nodeJs\node_modules\requirejs\bin\r.js  
  9. requirejs@2.2.0 D:\wmnp3\nodeJs\node_modules\requirejs  
  10.   
  11. D:\wmnp3\wwwroot\nodeJs\MVC\helloWorld>  

 

创建build.js (对应wmnp环境套件:D:\wmnp3\nodeJs\build\test.build.js)

JavaScript代码
  1. ({  
  2.     appDir:'../../wwwroot/nodeJs/MVC/helloWorld/public/js',  
  3.     baseUrl:'test',  
  4.     dir:'../../wwwroot/nodeJs/MVC/helloWorld/public/js/test-built',  
  5.     paths:{  
  6.         jquery:'empty:'  
  7.     },  
  8.     modules:[  
  9.         {  
  10.             name:'b'  
  11.         },  
  12.         {  
  13.             name:'c'  
  14.         },  
  15.     ]  
  16. })  
  17.   
  18. /**********************************************
  19. "appDir": "./",     /**** 应用根路径 ****
  20. "dir": "dist",      /**** 打包的文件生成到哪个目录
  21. "optimize": "none", /**** 是否压缩 ****
  22. ***********************************************/  

实例1(对应wmnp环境套件:http://127.0.0.1:3000/test_page)::

JavaScript代码
  1. /***************************************************************
  2. require.config(); 等同于 requirejs.config();
  3. ***************************************************************/  
  4. requirejs.config({  
  5.     baseUrl:'/js/test',  
  6.     paths:{  
  7.         jquery:'../lib/jquery.min',  
  8.         hello:'hello',  
  9.         afile:'a',  
  10.         bfile:'b',  
  11.         cfile:'c',  
  12.     },  
  13.     shim:{  
  14.         only:{exports:'only'},  
  15.         /***** shim中hello源对应paths模块hello.JS *****/  
  16.         hello:{  
  17.         /***** 用exports导入当函数,必须换成 init 函数导入多个函数的文件 *****/  
  18.           init:function(){  
  19.             return{  
  20.               uinfos:"liuxinxiu",  
  21.               hello1:hello1,  
  22.               hello2:hello2  
  23.             }  
  24.           }  
  25.         }  
  26.     }  
  27. });  
  28.   
  29. /******************************************************************************************************
  30. require和define 都可以加载依赖元素(都是用于加载依赖)
  31. 1. require 要用于加载类相关JS文件,build后不参与代码合并,所用到的资源只进行压缩,http自动请求其他文件.
  32. 2. define  真正意义上的模块化处理,load本文件及外文件内的代码片段,build后参与代码合并,http自动请求其他文件.
  33. ******************************************************************************************************/  
  34. /***********************************************************
  35. require(['afile','bfile','cfile'],function(a,b,c){
  36.     var x1=require("afile");
  37.     var x2=require("bfile");
  38.     var x3=require("cfile");
  39. });
  40. ***************************************************************/  
  41.   
  42. /**************************************************************
  43. define(['bfile'],function(b){
  44.     console.log('run c.js :'+b.color+','+b.width);
  45. });
  46. ***************************************************************/  
  47. requirejs(["http://code.liuxinxiu.com/php/Interface/getUserInfo.php?Jsoncallback=define"],  
  48.     function(data){  
  49.         //The data object will be the API response for the  
  50.         //JSONP data call.  
  51.         console.log(data);  
  52.     }  
  53. );  
  54.   
  55. require(['jquery'],function(){  
  56.     /***** 调用后写入你的jq代码 *****/  
  57.     $("body").attr("yy","111");  
  58. });  
  59.   
  60.   
  61.   
  62. /******************************************************************************
  63. require.config();
  64. 1. shim中exports定义好的函数可以用    (requirejs+define)引入并使用
  65. 2. shim中init定义好的函数则必须以用 (define)引入并使用
  66. *************************************************************************/  
  67. requirejs(['only'],function(only){  
  68.     only();  
  69. });  
  70.   
  71. define(['hello'],function(data){  
  72.     /***** 定义值直接取,函数直接调用 *****/  
  73.     console.log(data.uinfos);  
  74.     data.hello2();  
  75. });  

实例2(对应wmnp环境套件:http://127.0.0.1:3000/test_load)::

JavaScript代码
  1. requirejs.config({  
  2.     baseUrl:'/js/test',  
  3.     paths:{  
  4.         "afile":'a?y=1',  
  5.         "bfile":'b',  
  6.         "cfile":'c',  
  7.         "core1":'cores/core1',  
  8.         "core2":'cores/core2',  
  9.         "util1":'utils/util1',  
  10.         "util2":'utils/util2',  
  11.         "service1":'services/service1',  
  12.         "service2":'services/service2',  
  13.     }  
  14. });  
  15.   
  16.   
  17. /***************************************
  18. ****************************************/  
  19. require(['c'],function(){  
  20.      //a();  
  21. })  

执行(压缩/打包):D:\wmnp3\nodeJs>node node_modules\requirejs\bin\r.js -o build\test.build.js

Tags:

Express.js 构建工程实例 ---- [ 环境安装、控制器/路由设置、Post+Jsonp接口、ejs模版、全局变量 ]

ExpressJS在Node环境上安装( 绿色版Node运行环境套件下载 ):

app.js 代码如下:

JavaScript代码
  1. /******************************************************
  2. *************** global modules  ******************
  3. ******************************************************/  
  4.   
  5. var express=require('express');  
  6. var path=require('path');  
  7. var favicon=require('serve-favicon');  
  8. var logger=require('morgan');  
  9. var cookieParser=require('cookie-parser');  
  10. var bodyParser=require('body-parser');  
  11.   
  12.   
  13. var routes=require('./routes/index');  
  14. //var redis=require('./routes/redis');  
  15.   
  16.   
  17. var app=express();  
  18.   
  19.   
  20. /******************************************************
  21. *************** view engine setup  ******************
  22. ******************************************************/  
  23. /******************  jade模版     *********************/  
  24. /*******************************************************
  25. app.set('views',path.join(__dirname,'views/jade/'));
  26. app.set('view engine','jade'); //jade or ejs
  27. ********************************************************/  
  28.   
  29. /******************  ejs模版     *********************/  
  30. app.set('views',path.join(__dirname,'views/ejs/'));  
  31. app.set('view engine','ejs'); //jade or ejs  
  32. /******************  ejs模版     *********************/  
  33.   
  34.   
  35.   
  36. /******************************************************
  37. ****************** routes setup  ********************
  38. ******************************************************/  
  39. // uncomment after placing your favicon in /public  
  40. //app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')));  
  41. app.use(logger('dev'));  
  42. app.use(bodyParser.json());  
  43. app.use(bodyParser.urlencoded({extended:false}));  
  44. app.use(cookieParser());  
  45. app.use(express.static(path.join(__dirname,'public')));  
  46.   
  47. app.use('/',routes);  
  48. /****************** routes setup  *********************/  
  49. /*******************************************************
  50. app.use('/redis',redis);
  51. app.use('/jsonp',routes);
  52. app.use('/login',routes);
  53. *************************************************/  
  54.   
  55.   
  56. /******************************************************
  57. ****************** 服务错误处理  ********************
  58. ******************************************************/  
  59.   
  60. /***** catch 404 and forward to error handler *****/  
  61. app.use(function(req,res,next){  
  62.   var err=new Error('404 Not Found');  
  63.   err.status=404;  
  64.   next(err);  
  65. });  
  66.   
  67.   
  68.   
  69. // error handlers  
  70. // development error handler  
  71. /***** 通用错误处理程序 *****/  
  72. if(app.get('env')==='development'){  
  73.   app.use(function(err,req,res,next){  
  74.     res.status(err.status||500);  
  75.     res.render('sys/error',{  
  76.       message:err.message,  
  77.       error:err,  
  78.       version:process.version  
  79.     });  
  80.   });  
  81. }  
  82.   
  83. // production error handler  
  84. // no stacktraces leaked to user  
  85. app.use(function(err,req,res,next){  
  86.   res.status(err.status||500);  
  87.   res.render('sys/error',{  
  88.     message:err.message,  
  89.     error:{}  
  90.   });  
  91. });  
  92. /***** 通用错误处理程序 *****/  
  93.   
  94. module.exports=app;  

routes/index.js 代码如下:

JavaScript代码
  1. /******************************************************
  2. *************** router  *************************
  3. ******************************************************/  
  4. var express=require('express');  
  5. var router=express.Router();  
  6.   
  7.   
  8. var url=require("url");            //解析GET请求    
  9. var query=require("querystring");  //解析POST请求  
  10.   
  11.   
  12.   
  13. /************* GET home page demo *************/  
  14. router.get('/',function(req,res,next){  
  15.     res.render('sys/index',{title:'Express'});  
  16. });  
  17.   
  18. router.get('/jsonp',function(req,res,next){  
  19.     res.render('main/jsonp',{  
  20.         title:'jsonp'  
  21.     });  
  22. });  
  23.   
  24. router.get('/login',function(req,res,next){  
  25.     res.render('main/login',{  
  26.         title:'The Entrar-shadow Website',  
  27.         fonts:'Member Login',  
  28.         username:'Liuxinxiu',  
  29.     });  
  30. });  
  31.   
  32. router.get('/test_load',function(req,res,next){  
  33.     var build=req.query.build;  
  34.     res.render('test/test_load',{  
  35.         title:'build',  
  36.         build:build  
  37.     });  
  38. });  
  39.   
  40. router.get('/test_page',function(req,res,next){  
  41.     var build=req.query.build;  
  42.     res.render('test/test_page',{  
  43.         title:'test_page',  
  44.         build:build  
  45.     });  
  46. });  
  47.   
  48.   
  49. /*
  50. app.get('/jsonp',function(req,res,next){
  51.    res.jsonp({status:'jsonp'});  
  52. });
  53. */  
  54.   
  55. /************* 自造Json数据 *************/  
  56. var userData='PHN0eWxlPip7bWFyZ2luOjA7cGFkZGluZzowO31oMXtmb250LXNpemU6MTZweDt0ZXh0LWFsaWduOmNlbnRlcjsgbGluZS1oZWlnaHQ6NDVweDt9Ym9keXtjb2xvcjojMzMzO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtZmFtaWx5OiJNaWNyb3NvZnRZYWhlaSI7YmFja2dyb3VuZDojQjdDQUNDO31kaXZ7Ym9yZGVyOjFweCBzb2xpZCAjNDA1RTdCOyBib3JkZXItYm90dG9tOjA7IHdpZHRoOjk1JTsgbWFyZ2luOjAgYXV0bztiYWNrZ3JvdW5kOiNmZmY7Y29udGVudDoiIjtkaXNwbGF5OnRhYmxlO2NsZWFyOmJvdGh9bGl7bGluZS1oZWlnaHQ6MzVweDtsaXN0LXN0eWxlOm5vbmU7d2lkdGg6MjUlO3RleHQtYWxpZ246Y2VudGVyO2JvcmRlci1ib3R0b206MXB4IHNvbGlkICM0MDVFN0I7ZmxvYXQ6bGVmdDt9PC9zdHlsZT48aDE+5pyA6L+R6aOO5LqR5Lq65ZGY5ZCN5Y2VPC9oMT48ZGl2Pg0KCTx1bD4NCgkJPGxpPumjjua4heaJrDwvbGk+DQoJCTxsaT4xMTAxPC9saT4NCgkJPGxpPjIzPC9saT4NCgkJPGxpPjUyODE5OTExPC9saT4NCgk8L3VsPg0KCQ0KCTx1bD4NCgkJPGxpPuiuuOW/l+mjnjwvbGk+DQoJCTxsaT4xMTAxPC9saT4NCgkJPGxpPjIzPC9saT4NCgkJPGxpPjUyODE5OTExPC9saT4NCgk8L3VsPg0KCQ0KCTx1bD4NCgkJPGxpPuS7pOeLkOWGsjwvbGk+DQoJCTxsaT4xMTAyPC9saT4NCgkJPGxpPjIxPC9saT4NCgkJPGxpPjUyODE5OTAxPC9saT4NCgk8L3VsPg0KCQ0KCTx1bD4NCgkJPGxpPuS7u+aIkeihjDwvbGk+DQoJCTxsaT4xMTAzPC9saT4NCgkJPGxpPjIyPC9saT4NCgkJPGxpPjUyODE5OTkxPC9saT4NCgk8L3VsPg0KCQ0KCTx1bD4NCgkJPGxpPuS7u+ebiOebiDwvbGk+DQoJCTxsaT4xMTA0PC9saT4NCgkJPGxpPjI0PC9saT4NCgkJPGxpPjUyODE5OTgxPC9saT4NCgk8L3VsPg0KCQ0KCTx1bD4NCgkJPGxpPuS4nOaWueS4jei0pTwvbGk+DQoJCTxsaT4xMTA1PC9saT4NCgkJPGxpPjI2PC9saT4NCgkJPGxpPjUyODE5OTgxPC9saT4NCgk8L3VsPg0KCTwvZGl2Pg==';  
  57. var dataJson={status:1,message:"这是一个JSONP接口,success!",dataList:userData,JsonArray:[0,1,2,3,4,5]};  
  58.   
  59. /************* 处理GET请求(jsonp需判断参数单独处理) *************/  
  60. router.get('/API/sendGet/jsonpInfo.do',function(req,res){  
  61.     //res.contentType('json');//返回的数据类型  
  62.     //res.writeHead(200,{"Content-Type":"text/json"});  
  63.     res.setHeader('Content-Type','text/json;charset=UTF-8');  
  64.     var params=url.parse(req.url,true).query; //解释url参数部分name=zzl&email=zzl@sina.com  
  65.     /**** 获取请求过来的跨域回调函数名称 ****/  
  66.     var reqQuery=req.query,Jsoncallback=req.query.Jsoncallback;  
  67.     /**** 如果有Jsoncallback的情况 ****/  
  68.     if(reqQuery&&Jsoncallback){  
  69.         //console.log(params.query.Jsoncallback);  
  70.         //res.jsonp({status:200,message:"这是一个JSONP接口",data:[]});  
  71.         //res.send(JSON.stringify({status:200,message:"success!这是一个JSONP接口",data:[]}));  
  72.   
  73.         /**** 拼成一个JS字符串 ****/  
  74.         var str=Jsoncallback+'('+JSON.stringify(dataJson)+')';    
  75.         //res.json(str);  
  76.         //res.write(str);  
  77.         res.end(str);  
  78.   
  79.     }  
  80.     /**** 没有Jsoncallback的情况 ****/  
  81.     else{  
  82.         res.json({status:200,message:"这是一个JSON接口",data:[]});  
  83.     }  
  84. });  
  85.   
  86. /************* 处理POST请求(Body/x-www-form-urlencoded) **************/  
  87. router.post('/API/sendPost/loginSubmit.do',function(req,res){  
  88.   var username=req.body.username;  
  89.   var password=req.body.password;  
  90.     
  91.   //console.log(username!='');  
  92.   if((username&&password!='')){  
  93.     console.log("Username="+username+",password="+password);  
  94.     /**********************************************************************************
  95.     /**************   JSON.stringify(v) 和 res.json 都是格式数据   ********************/  
  96.     /*********************************************************************************
  97.         res.json({status:1,info:"数据提交成功!",username:JSON.stringify(username)});
  98.     /*********************************************************************************/  
  99.     res.json({status:1,info:"数据提交成功!",username:username});  
  100.   }else{  
  101.     res.end("0");  
  102.   }  
  103. });  
  104.   
  105. module.exports=router;  

ejs 模版:

XML/HTML代码
  1. <!DOCTYPE html>  
  2. <html>  
  3. <head>  
  4.     <title>test</title>  
  5.         <meta charset="utf-8">  
  6.         <link type='text/css' href="/css/login/home.css" rel='stylesheet' />  
  7.         <meta name="viewport" content="width=device-width, initial-scale=1">  
  8. </head>  
  9. <body>  
  10.     <h1>test/build=</h1>  
  11.     <%if(1+1===2){%>  
  12.     <h1><%= build %></h1>  
  13.     <%}%>  
  14. </body>  
  15. <%if(build==null){%>  
  16. <!-- 引入require.js和入口文件||默认开放环境 -->  
  17. <script src="http://localhost:3000/js/lib/require.js" data-main="http://127.0.0.1:3000/js/test/app_page.js"></script>  
  18. <!--<script src="http://localhost:3000/js/test/yy.js"></script>-->  
  19. <%}%>  
  20.   
  21. <%if(build!=null&&build==1){%>  
  22. <!-- 引入require.js和入口文件||判断参数用于测试build后生产环境版本js -->  
  23. <script src="http://localhost:3000/js/lib/require.js" data-main="http://127.0.0.1:3000/js/test-built/test/app_page.js"></script>  
  24. <%}%>  
  25.   
  26. </html>  

 

Tags: , ,

wmnp是Windows下Mysql+nginx+php+nodeJs 环境套件,具有绿色、快速、无需安装、等特点,适用于个人站长、中小企业、WEB程序开发人员,且压缩包体积很小。

[软件作者: 刘新修    最新版本: 1.0    最后修改: 2016.05.24   转载请注明原文链接:http://liuxinxiu.com/wmnp/]

=====================================================================

软件名称:wmnp

软件作者:刘新修

授权方式:免费软件

发布日期:2011年1月1日

更新日期:2016年5月24日

运行环境:WinNT/Win7/WinXP/Win2003

文件大小:30MB

github: https://github.com/liuxinxiu/wmnp/

=====================================================================

download: wmnp-1.0  [新增NodeJs稳定版] New!
2016-05-24
30MB
download: wmnp-0.1.3
2011-03-19
11.7MB
download: wmnp-0.1.2
2011-01-12
8.65MB
download: wmnp-0.1.1
2011-01-01
8.20MB
 
 
 
 
 
 
 
 

 

============================================================================

2016-05-24 【wmnp-1.0】适用服务器标准生产环境的环境套件!

mysql--nginx--php--nodeJs 相关版本如下:

谷歌Code历史版本:http://code.google.com/p/wmnp/downloads/list

================= wnmp-1.0 ========================

Mysql-5.1.48

Nginx-0.8.50

PHP-5.2.10

nodeJs-4.4.4

=================================================

JS FormData对象

[不指定 2016/03/31 10:43 | by 刘新修 ]

通常我们提交(使用submit button)时,会把form中的所有表格元素的name与value组成一个queryString,提交到后台。这用jQuery的方法来说,就是serialize。但当我们使用Ajax提交时,这过程就要变成人工的了。因此,FormData对象的出现可以减少我们一些工作量。

想得到一个FormData对象:

var formdata = new FormData();

W3c草案提供了三种方案来获取或修改FormData。

方案1:创建一个空的FormData对象,然后再用append方法逐个添加键值对:

var formdata = new FormData();
formdata.append("name", "呵呵");
formdata.append("url", "http://www.baidu.com/");

方案2:取得form元素对象,将它作为参数传入FormData对象中!

var formobj =  document.getElementById("form");
var formdata = new FormData(formobj);

方案3:利用form元素对象的getFormData方法生成它!

var formobj =  document.getElementById("form");
var formdata = formobj.getFormData()

利用Formdata对象,我们可以使用原生js通过ajax实现异步上传图片,当然,现在已经有jquery的批量上传插件了,实现原理就是利用了Formdata。

Tags:

php [urlencode urldecode] 函数

[不指定 2016/03/29 13:28 | by 刘新修 ]

 urlencode()编码:对字符串中除了 -_. 之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数,空格则编码为加号(+)。

urldecode()解码:还原 URL 编码字符串。
示例:
<?php
header("Content-Type:text/html; charset=utf-8");
//对参数值进行编码
$parm=urlencode("演示php-mysql");
 
//拼接url
$url="decode.php?par=".$parm;
?>
 
<a href="<?php echo $url;?>">urlencode演示</a>
 
点击连接后地址栏中汉字被编码了:
http://localhost/decode.php?par=%E6%BC%94%E7%A4%BAphp-mysql
------------------------------------------------------------------------
 
//decode.php
<?php
//获取参数值
$parValue=$_GET['par'];
 
//解码
echo urldecode($parValue);
//运行结果:演示php-mysql
?>

shell截取字符串的方法

[不指定 2016/03/11 10:17 | by 刘新修 ]

shell中截取字符串的方法有很多中,

${expression}一共有9种使用方法。

${parameter:-word}

${parameter:=word}

${parameter:?word}

${parameter:+word} 

上面4种可以用来进行缺省值的替换。

${#parameter}

上面这种可以获得字符串的长度。 

${parameter%word} 最小限度从后面截取word

${parameter%%word} 最大限度从后面截取word

${parameter#word} 最小限度从前面截取word

${parameter##word} 最大限度从前面截取word

上面4个就是用来截取字符串的方法了。

有了着四种用法就不必使用cut命令来截取字符串了

第一种又可以分为四种情况,下面一一介绍。


1、使用 # 号操作符。用途是从左边开始删除第一次出现子字符串即其左边字符,保留右边字符。用法为#*substr,例如:

str='http://www.你的域名.com/cut-string.html'

echo ${str#*//}

得到的结果为www.你的域名.com/cut-string.html,即删除从左边开始到第一个"//"及其左边所有字符2、使用 ## 号操作符。用途是从左边开始删除最后一次出现子字符串即其左边字符,保留右边字符。用法为##*substr,例如:

str='http://www.你的域名.com/cut-string.html'

echo ${str##*/}

得到的结果为cut-string.html,即删除最后出现的"/"及其左边所有字符

3、使用 % 号操作符。用途是从右边开始删除第一次出现子字符串即其右边字符,保留左边字符。用法为%substr*,例如:

str='http://www.你的域名.com/cut-string.html'

echo ${str%/*}

得到的结果为http://www.你的域名.com,即删除从右边开始到第一个"/"及其右边所有字符

4、使用 %% 号操作符。用途是从右边开始删除最后一次出现子字符串即其右边字符,保留左边字符。用法为%%substr*,例如:

str='http://www.你的域名.com/cut-string.html'

echo ${str%%/*}

得到的结果为http://www.你的域名.com,即删除从右边开始到最后一个"/"及其右边所有字符


第二种也分为四种,分别介绍如下:

1、从左边第几个字符开始以及字符的个数,用法为:start:len,例如:

str='http://www.你的域名.com/cut-string.html'

echo ${var:0:5}

其中的 0 表示左边第一个字符开始,5 表示字符的总个数。

结果是:http:

2、从左边第几个字符开始一直到结束,用法为:start,例如:

str='http://www.你的域名.com/cut-string.html'

echo ${var:7}

其中的 7 表示左边第8个字符开始

结果是:www.你的域名.com/cut-string.html

3、从右边第几个字符开始以及字符的个数,用法:0-start:len,例如:

str='http://www.你的域名.com/cut-string.html'

echo ${str:0-15:10}

其中的 0-6 表示右边算起第6个字符开始,10 表示字符的个数。

结果是:cut-string

3、从右边第几个字符开始一直到结束,用法:0-start,例如:

str='http://www.你的域名.com/cut-string.html'

echo ${str:0-4}

其中的 0-6 表示右边算起第6个字符开始,10 表示字符的个数。

结果是:html

注:(左边的第一个字符是用 0 表示,右边的第一个字符用 0-1 表示)

C#代码
  1. #!/bin/bash  
  2. #获取当前SH脚本的绝对路径  
  3. Cur_Dir=$(pwd)  
  4. #echo $Cur_Dir  
  5. function ergodic(){  
  6. for file in ` ls $1`  
  7. do  
  8.     # echo $file  
  9.     if [ -d $1"/"$file ]  
  10.     then  
  11.     ergodic $1"/"$file  
  12.         else  
  13.         local path=$1"/"$file   #得到文件的完整的目录  
  14.         local name=$file        #得到文件的名字  
  15.         #echo ${file##*.} /**** 打印返回的文件名 ****/  
  16.         #echo ${file##*.} /**** 打印返回的文件名 ****/  
  17.         #判断所匹配的文件扩展名  
  18.         if [ "${file##*.}" = "gz" ]||[ "${file##*.}" = "bz2" ]||[ "${file##*.}" = "zip" ]; then #警告:中括号内不前后必须流空格、等号前后必须留空格!  
  19.             #echo ${1#*/software} /**** 截取字符串处理当前路径 ****/  
  20.             echo "http://down.liuxinxiu.com"${1#*/software}"/"$file >>a.txt  
  21.             echo "http://down.liuxinxiu.com"${1#*/software}"/"$file  
  22.         fi  
  23.     fi  
  24.   
  25. done  
  26. }  
  27. INIT_PATH=$Cur_Dir  
  28. ergodic $INIT_PATH  

通用脚本,当前目录名为二级域名,一级域名自行定义

C#代码
  1. #!/bin/bash  
  2. #获取当前SH脚本的绝对路径  
  3. Cur_Dir=$(pwd)  
  4. Sub_Path=${Cur_Dir##*/}  
  5. #echo $Cur_Dir  
  6. #先清空一下文件,注明:如果不清空则一直在原文件尾部追加  
  7. : > b.txt  
  8. #当前目录下遍历循环文件的方法  
  9. function ergodic(){  
  10. for file in ` ls $1`  
  11. do  
  12.     # echo $file  
  13.     if [ -d $1"/"$file ]  
  14.     then  
  15.     ergodic $1"/"$file  
  16.         else  
  17.         local path=$1"/"$file   #得到文件的完整的目录  
  18.         local name=$file        #得到文件的名字  
  19.         #echo ${file##*.} /**** 打印返回的文件名 ****/  
  20.         #echo ${file##*.} /**** 打印返回的文件名 ****/  
  21.         #判断所匹配的文件扩展名  
  22.         if [ "${file##*.}" = "gz" ]||[ "${file##*.}" = "bz2" ]||[ "${file##*.}" = "zip" ]; then #警告:中括号内不前后必须流空格、等号前后必须留空格!  
  23.             #echo ${1#*/software} /**** 截取字符串处理当前路径 ****/  
  24.             echo "http://"$Sub_Path".liuxinxiu.com"${1#*/software}"/"$file >>b.txt  
  25.             echo "http://"$Sub_Path".liuxinxiu.com"${1#*/software}"/"$file  
  26.         fi  
  27.     fi  
  28.   
  29. done  
  30. }  
  31. INIT_PATH=$Cur_Dir  
  32. ergodic $INIT_PATH  
PHP代码
  1. <?php  
  2.     //创建画布,返回一个资源类型的变量$image,并在内存中开辟一个临时区域  
  3.     $image = imagecreatetruecolor(400,400);                //创建画布大小为400x400  
  4.   
  5.     //设置图像中所需的颜色,相当于在画画时准备的染料盒  
  6.     $white = imagecolorallocate($image, 0xFF, 0xFF, 0xFF);          //为图像分配颜色为白色  
  7.     $gray = imagecolorallocate($image, 0xC0, 0xC0, 0xC0);           //为图像分配颜色为灰色  
  8.     $darkgray = imagecolorallocate($image, 0x90, 0x90, 0x90);       //为图像分配颜色为暗灰色  
  9.     $navy = imagecolorallocate($image, 0x00, 0x00, 0x80);           //为图像分配颜色为深蓝色  
  10.     $darknavy = imagecolorallocate($image, 0x00, 0x00, 0x50);       //为图像分配颜色为暗深蓝色  
  11.     $red = imagecolorallocate($image, 0xFF, 0x00, 0x00);           //为图像分配颜色为红色  
  12.     $darkred = imagecolorallocate($image, 0x90, 0x00, 0x00);       //为图像分配颜色为暗红色  
  13.   
  14.     imagefill($image, 0, 0, $white);            //为画布背景填充背景颜色  
  15.     //动态制作3D效果  
  16.     for ($i=220;$i>200;$i--){                //循环10次画出立体效果  
  17.         imagefilledarc($image, 200, $i, 400, 200, -160, 40, $darknavy, IMG_ARC_PIE);  
  18.         imagefilledarc($image, 200, $i, 400, 200, 40, 75, $darkgray, IMG_ARC_PIE);  
  19.         imagefilledarc($image, 200, $i, 400, 200, 75, 200, $darkred, IMG_ARC_PIE);  
  20.     }  
  21.   
  22.     imagefilledarc($image, 200, 200, 400, 200, -160, 40, $navy, IMG_ARC_PIE);      //画一椭圆弧且填充  
  23.     imagefilledarc($image, 200, 200, 400, 200, 40 , 75, $gray, IMG_ARC_PIE);      //画一椭圆弧且填充  
  24.     imagefilledarc($image, 200, 200, 400, 200, 75, 200, $red, IMG_ARC_PIE);      //画一椭圆弧且填充  
  25.   
  26.     imagestring($image, 20, 100, 230, '34.7%', $white);                //水平地画一行字符串,依次是F/X/Y/--数值越大向右、向下  
  27.     imagestring($image, 20, 200, 150, '55.5%', $white);                //水平地画一行字符串,依次是F/X/Y/--数值越大向右、向下  
  28.   
  29.     //向浏览器中输出一个GIF格式的图片  
  30.     header('Content-type:image/png');       //使用头函数告诉浏览器以图像方式处理以下输出  
  31.     imagepng($image);                       //向浏览器输出  
  32.     imagedestroy($image);                   //销毁图像释放资源  
  33.   
  34.     //header("Content-type: text/html; charset=utf-8");  
  35.     //$str="<div>'$image'</div>";  
  36.     //echo $str;  
  37. ?>  

gd-png.php

PHP代码
  1. <?php  
  2.     //创建画布,返回一个资源类型的变量$image,并在内存中开辟一个临时区域  
  3.     $image = imagecreatetruecolor(375,375);                //创建画布大小为375x375 iPhone6 375X627  
  4.   
  5.     //设置图像中所需的颜色,相当于在画画时准备的染料盒  
  6.     $white = imagecolorallocate($image, 0xFF, 0xFF, 0xFF);          //为图像分配颜色为白色  
  7.     $gray = imagecolorallocate($image, 0xC0, 0xC0, 0xC0);           //为图像分配颜色为灰色  
  8.     $darkgray = imagecolorallocate($image, 0x90, 0x90, 0x90);       //为图像分配颜色为暗灰色  
  9.     $navy = imagecolorallocate($image, 0x00, 0x00, 0x80);           //为图像分配颜色为深蓝色  
  10.     $darknavy = imagecolorallocate($image, 0x00, 0x00, 0x50);       //为图像分配颜色为暗深蓝色  
  11.     $red = imagecolorallocate($image, 0xFF, 0x00, 0x00);           //为图像分配颜色为红色  
  12.     $darkred = imagecolorallocate($image, 0x90, 0x00, 0x00);       //为图像分配颜色为暗红色  
  13.   
  14.     imagefill($image, 0, 0, $white);            //为画布背景填充背景颜色  
  15.     //动态制作3D效果  
  16.     for ($i=200;$i>180;$i--){                //循环10次画出立体效果  
  17.         imagefilledarc($image, 187, $i, 360, 180, -160, 40, $darknavy, IMG_ARC_PIE);   //  
  18.         imagefilledarc($image, 187, $i, 360, 180, 40, 75, $darkgray, IMG_ARC_PIE);  
  19.         imagefilledarc($image, 187, $i, 360, 180, 75, 200, $darkred, IMG_ARC_PIE);  
  20.     }  
  21.   
  22.     imagefilledarc($image, 187, 180, 360, 180, -160, 40, $navy, IMG_ARC_PIE);      //画一椭圆弧且填充,第一个187-180 是错开7像素  
  23.     imagefilledarc($image, 187, 180, 360, 180, 40 , 75, $gray, IMG_ARC_PIE);      //画一椭圆弧且填充  
  24.     imagefilledarc($image, 187, 180, 360, 180, 75, 200, $red, IMG_ARC_PIE);      //画一椭圆弧且填充  
  25.   
  26.     imagestring($image, 20, 180, 130, '55.5%'$white);                //水平地画一行字符串,依次是F/X/Y/--数值越大向右、向下  
  27.     imagestring($image, 20, 100, 200, '34.7%'$white);                //水平地画一行字符串,依次是F/X/Y/--数值越大向右、向下  
  28.   
  29.   
  30.     //向浏览器中输出一个GIF格式的图片  
  31.     //header("Content-type:text/html;charset=utf-8"); // 设置页面的编码风格  
  32.     header('Content-type:image/png');       //使用头函数告诉浏览器以图像方式处理以下输出--通知浏览器输出的是图像  
  33.     imagepng($image);                       //向浏览器输出  
  34.     imagedestroy($image);                   //销毁图像释放资源  
  35.   
  36.     //header("Content-type: text/html; charset=utf-8");  
  37.     //$str="<div>'$image'</div>";  
  38.     //echo $str;  
  39. ?>  
第一页 上页 8 9 10 11 12 13 14 15 16 17 下页 最后页 [ 显示模式: 摘要 | 列表 ]