js_util - xiaojiandong/blogAndResourceCollect GitHub Wiki

1. 获取浏览器地址栏对应key的value值另一个方法:

2. 判断一个长str中是否包含指定的短str:

3. 通过0或1,截取指定str前后的字符串:

// 提取一些公共的工具类 ,requirejs
define(['jquery'] , function(jquery){
   return SUBJ = {
      getValueFromUrlByKey:function(name){ // 通过url的key值,返回对应的value
            var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)","i");
            var r = window.location.search.substr(1).match(reg);
            if (r!=null) return decodeURI((r[2])); return null;
        },
      testData : '1000测试数据',
      getSomeValue : function(){
      	alert('返回一个方法getSomeValue');
      },
      hasSpecailStrFromLongStr : function(longStr,specailStr){ // 通过长str,获取指定的str,返回boolean
         if(longStr.indexOf(specailStr) > 0){ // 存在指定的str
            return true;
         }else{ // 不存在
            return false;
         }
      },
    // 原始长longStr;指定str;index - (0:之前,1:之后)
    getBeforeOrAfterStr = function(longStr,str,index){ // 截取指定字符串前后的字符串
        var str_before = longStr.split(str)[0];
        var str_after = longStr.split(str)[1];
        //alert('前:'+str_before+' - 后:'+str_after);
        if(index == 0){ // 截取str之前的
          return str_before;
        }else{ // 截取str之后的
            return str_after;
        }
     },
     // 截取url的key-value值
    getValueFromHrefByKey1 : function(key){
//测试数据,实际情况是用window.location.href得到URL
  var sHref = window.location.href;
  //取出不带#的URL
  //sHref = sHref.split('#')[0]; //#之前
  sHref = sHref.split('#')[1]; //#之后
  var args = sHref.split("?");
  var retval = "";
  /*参数为空*/
  if(args[0] == sHref){
    return retval; /*无需做任何处理*/
  }
  var str = args[1];
  args = str.split("&");
  for(var i = 0; i < args.length; i++ ) {
    str = args[i];
    var arg = str.split("=");
    if(arg.length <= 1) continue;
    if(arg[0] == key) retval = arg[1];
  }
  //if(!retval){
  //    //alert('url中的' + key + '参数为空');
  //    console.log('url中的' + key + '参数为空');
  //}
  return retval;
    }  
   };
  // 用法1: var value = SUBJ.getValueFromUrlByKey('shareFriend');
  /*
   * 用法2:
   * var longStr = '1254xiaojianBlog%*54'; // 完整的长str
   * var specailStr = 'xiao'; // 指定的xiao
   * if( SUBJ.hasSpecailStrFromLongStr(longStr,specailStr) ){ // 返回boolean
   *     console.log('是包含xiao这个字符串');
   *  }else{
   *    console.log('错误的');
   *  }
   */
   /*
    *用法3:
    * var longStr = 'http://www.runoob.com/try/try.php?filename=bootstrap3-progressbar-striped';//原始字符串
    * var str = '.php?'; // 指定字符串
    * var bforeStr = SUBJ.getBeforeOrAfterStr(longStr,str,0);//0-之前,1-之后
    * var afterStr = SUBJ.getBeforeOrAfterStr(longStr,str,1);
    * console.log('1. 原始longStr : '+longStr);
    * console.log('2. 指定str : '+str);
    * console.log('2. 指定str之前的 : '+bforeStr);
    * console.log('4. 指定str之后的 : '+afterStr);
    */
    /*
     *用法4:删除数组的指定元素
     * var todos = ['a','b','c']
     * todos.splice(index,1); // index=0,则删除第0个元素
     */ 
});

在GitBash修改fis3端口号,启动服务:$ fis3 server start -p 8888

splice() 方法:this.items.splice(index,1); // 从当前索引开始,往后删除1个元素(即删除元素自身)

js获取指定时间的毫秒数

  var endDay = new Date("May 28,2016 12:30:00"); // 获取 2016年5月28号 12点30分这个对象
  var endSeconds = endDay.getTime();   //得到该对象的毫秒数

通过服务端返回的秒数,计算视图倒计时

  $scope.cutTimeBySeconds = function(data){
      var SYS_SECONDS = parseInt(data.countdown); // 服务端返回的秒
      var timer = setInterval(function(){
          SYS_SECONDS --;
          if( SYS_SECONDS >= 0 ){ // 正在倒计时
             var day = Math.floor((SYS_SECONDS / 3600) / 24);
             var hour = Math.floor((SYS_SECONDS / 3600) % 24);
             var minute = Math.floor((SYS_SECONDS / 60) % 60);
             var seconds = Math.floor(SYS_SECONDS % 60);
             //console.log(day+'天'+hour+'时'+minute+'分'+seconds+'秒');
             $('.js_cut_time_wrap').html(day+'天'+hour+'时'+minute+'分'+seconds+'秒');
          }else{ // 倒计时结束
            clearInterval(timer);
            alert('倒计时结束,视图更换');
          }
      });
  };

js计算数组最大最小值,throw Error('msg')的用法

  var  arr = [5, 458 , 120 , -215 , 228 , 400 , 122205, -85411];
  var maxInNumbers = Math.max.apply(Math, arr);
  var minInNumbers = Math.min.apply(Math, arr);
  console.log( 'maxInNumbers : ' + maxInNumbers ); // 122205
  console.log( 'minInNumbers : ' + minInNumbers ); // -85411
  var a = 8;
  if(a > 10){
     console.log('你输入的数是 : ' + a);
   }else{
     throw Error('这个数是错误的!'); // 在控制台中输出 Uncaught Error: 这个数是错误的!
   }
  var powNum = Math.pow(5,3); // 求5的3次方

js navigator.userAgent判断手机设备/微信

    // 1. js判断手机设备
    var ua = navigator.userAgent.toLowerCase();	
     if (/iphone|ipad|ipod/.test(ua)) {
	   alert("iphone设备访问");		
	} else if (/android/.test(ua)) {
	   alert("android设备访问");	
	}
    // 2. js判断访问当前页面的是微信还是其他渠道
    var userApp = navigator.userAgent.toLowerCase();
            if(userApp.indexOf('micromessenger/')>-1){ // 微信
                var callbackurl = encodeURIComponent(window.location.href);
                window.location.href = ym.user + '/api/wechat_auth?return_url=' + callbackurl;
            }else{ // 非微信
                $('body').append('<div class="wx_open_remind"><p><img src="/static/lib/images/icon/copy_btn.png" /></p>请复制此链接,在微信聊天窗口内打开</div>');
                //<br/><input type="text" value="'+window.location.href+'" class="copy_input" />
                document.body.addEventListener('touchmove', e.preventDefault(), false); // 禁止滚动
            }

js控制640px父容器

var useScaledViewportMeta = function ( ) {
  var phoneWidth = parseInt(window.screen.width);
  var phoneScale = phoneWidth/640;
  $('head').append('<meta name="viewport" content="width=640, user-scalable=no, target-densitydpi=device-dpi,minimum-scale='+phoneScale+',maximum-scale='+phoneScale+'">');
};
var ua = navigator.userAgent;
if (/Android (\d+\.\d+)/.test(ua)){
  var version = parseFloat(RegExp.$1);
  // andriod 2.3
  if(version>2.3){
    useScaledViewportMeta();
    // andriod 2.3以上
  }else{
    $('head').append('<meta name="viewport" content="width=640, target-densitydpi=device-dpi">');
  }
  // 其他系统
} else {
  useScaledViewportMeta();
}
/**
 * 该方法用于将页面内全部元素包裹在 640宽度的div中,实现viewport缩放
 */
SIXE.Util.outerContainerWrapFn = function(){
  var outerContainerWrap = "<div class='js_outer_container_wrap'></div>";
  $( "body" ).wrapInner( outerContainerWrap);
  $('.js_outer_container_wrap').css({
    'width': '640px',
    'margin': '0 auto',
    //'background': 'pink',
    'text-align': 'center',
    'overflow': 'hidden'
  });
};
SIXE.Util.outerContainerWrapFn();

###工具类集合

  //工具方法:
  //https://github.com/xiaojiandong/JavaScriptNote/blob/master/vue/static/js/libs/common/SUBJ.Util.js
  //登陆小组件:
  //https://github.com/xiaojiandong/JavaScriptNote/blob/master/vue/static/js/libs/common/LoginUtil.js

  // jquery获取checked的值
  $('input[name="sex"]:checked').val();
  // jquery设置某个值为checked
  $('input[value="男"]').attr('checked',true);
  // jquery设置下拉框的某个值为checked
  $("#js_job").find("option[value='董秘']").attr("selected",true); 
⚠️ **GitHub.com Fallback** ⚠️