常用js及常用正则

获取文本行数

$('.desc').each(function(){

    var styles = window.getComputedStyle(this, null);
    var lh = parseInt(styles.lineHeight, 10); //行高
    var h = parseInt(styles.height, 10); //控件高度
    var lc = Math.round(h / lh); //文字行数

    // console.log(lh+"--"+h)
    // console.log(lc)
    if(lc==4){
        $(this).next().show()

    }else{
        $(this).next().hide()

    }
})

滚动触底

$(window).scroll(function() {
  if(($(window).scrollTop() + $(window).height() > $(document).height()-10) && !ajax){
      if(maxPage>1 && page<maxPage && !ajax){
          ajax=!0;//注明开始ajax加载中
          page++;
          if(page>=2){
              $('.back-to-top').show();
          }
          util.getData(page)
      }
  }
});

滚动回到顶部

$('html,body').animate({scrollTop: '0px'}, 800);

滚动悬浮 position: sticky; top: 0;

.top-tab{
    width: 100%;
    height: .86rem;
    background: #fff;
}
.top-tab.fixed{
    position: fixed;
    top: 0;
}

<div class="top-tab toptab-scroll"></div>
<div class="top-tab fixed"></div>

$(window).scroll(function() {
  var topTabY = $('.toptab-scroll').offset().top;              
  if($(window).scrollTop()>=topTabY){
      $('.fixed').show()
  }else{
      $('.fixed').hide()
  }
});

判断字符串结尾

//str是否以target结尾
function confirmEnding(str, target) {
  var start = str.length - target.length;
  var arr = str.substr(start, target.length);
  if (arr == target) {
    return true;
  }
  return false;
}

正则电话号码

function checkMobile(mobile) {
  var re = /^1\d{10}$/
  if (re.test(mobile)) {
    // console.log("正确");
    return true
  } else {
    // console.log("错误");
    return false
  }
}

正则标签中图片地址

var str = "this is test string <img src=\"http:baidu.com/test.jpg\" width='50' > 1 and the end <img src=\"所有地址也能匹配.jpg\" /> 33! <img src=\"/uploads/attached/image/20120426/20120426225658_92565.png\" alt=\"\" />"
var imgReg = /<img.*?(?:>|\/>)/gi;
var srcReg = /src=[\'\"]?([^\'\"]*)[\'\"]?/i;
var arr = str.match(imgReg);  // arr 为包含所有img标签的数组

经纬度计算距离

// 方法定义 lat,lng
function getDistance( lat1,  lng1,  lat2,  lng2){
  var radLat1 = lat1*Math.PI / 180.0;
  var radLat2 = lat2*Math.PI / 180.0;
  var a = radLat1 - radLat2;
  var  b = lng1*Math.PI / 180.0 - lng2*Math.PI / 180.0;
  var s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a/2),2) +
  Math.cos(radLat1)*Math.cos(radLat2)*Math.pow(Math.sin(b/2),2)));
  s = s *6378.137 ;// EARTH_RADIUS;
  s = Math.round(s * 10000) / 10;
  return s;
}
// 调用 return的距离单位为m
//getDistance(10.0,113.0,12.0,114.0)
js
JSRUN前端笔记, 是针对前端工程师开放的一个笔记分享平台,是前端工程师记录重点、分享经验的一个笔记本。JSRUN前端采用的 MarkDown 语法 (极客专用语法), 这里只属于前端工程师。