Mrcdh技术博客 Mrcdh技术博客
首页
  • Html5
  • Javascript
  • Nodejs
  • Android
  • 微信公众号
  • 框架
  • Mysql
  • PHP
  • Python
  • Gulp
  • 其它
  • 网站
  • 资源
  • Vue资源
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

Mrcdh

立志于全桟开发
首页
  • Html5
  • Javascript
  • Nodejs
  • Android
  • 微信公众号
  • 框架
  • Mysql
  • PHP
  • Python
  • Gulp
  • 其它
  • 网站
  • 资源
  • Vue资源
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • Html5

  • JavaScript

    • 常用操作
      • 通过鼠标坐标获取当前DOM对象
      • 处理富文本内容中的图片地址为完整地址
      • input输入为金额,保留两位小数
      • 百度坐标转高德(传入经度、纬度)
      • 高德坐标转百度(传入经度、纬度)
    • 安利一个网页调试开发利器vConsole
    • axios常用操作
    • 前端使用js-cookie用来操作cookie
    • pushjs浏览器通知插件
  • Nodejs

  • express

  • Android

  • 微信公众号

  • 框架

  • 其他

  • selenium

  • Sequelize

  • 大前端
  • JavaScript
mrcdh
2020-10-23
目录

常用操作

# 通过鼠标坐标获取当前DOM对象

const x = event.pageX || event.clientX + document.body.scroolLeft;
const y = event.pageY || event.clientY + document.body.scrollTop;
const dom = document.elementFromPoint(x,y);
1
2
3

# 处理富文本内容中的图片地址为完整地址

const baseUrl = 'http://localhost'
const res = content.replace(/<(img [^>]*)src=['"]([^'"]+)['"]([^>]*)>/gi, function(match, p1, p2, p3){
  let url = (function (){
    if(!p2){
      return ''
    }
    if(p2.indexOf('http') === 0 || p2.indexOf('blob:') === 0){
      return p2
    } else if(p2.indexOf('/') === 0){
      return baseUrl + p2
    }
    return baseUrl + '/' + p2
  })();
  var newStr = `<${p1} src="${url}" ${p3}>`
  return newStr
});
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

# input输入为金额,保留两位小数

/** 输入 */
function onkeyup (e) {
  value = value.replace(/[^\d\.]/g,'')    // 只能输入数字和小数点
    .replace(/^\./g,'')        // 过滤开头的小数点
    .replace(/\.{2,}/g,'.')    // 多个连续小数点合并为一个
    .replace('.','$#$').replace(/\./g,'').replace('$#$','.')  // 保留第一个小数点,删除其他的小数点
    .replace(/^0(\d+)/, '$1')  // 过滤开头的0
    .replace(/^(\d+)\.(\d\d).*$/, '$1.$2') // 保留两位小数
  return value
}

/** 失去焦点 */
function onblur (e) {
  value = value.replace(/[^\d\.]/g,'')    // 只能输入数字和小数点
    .replace(/^\./g,'')        // 过滤开头的小数点
    .replace(/\.{2,}/g,'.')    // 多个连续小数点合并为一个
    .replace('.','$#$').replace(/\./g,'').replace('$#$','.')  // 保留第一个小数点,删除其他的小数点
    .replace(/^0(\d+)/, '$1')  // 过滤开头的0
    .replace(/^(\d+)\.(\d\d).*$/, '$1.$2') // 保留两位小数

  // 输入0的时候转成空或者可自行调节 0.00 看需求
  if(input.value === '0'){
    input.value=''
  }
  // 把 123. 的数据转成 123
  if(input.value.split('.')[1]==''){ 
    input.value=input.value.split('.')[0]
  }
  return value
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

# 百度坐标转高德(传入经度、纬度)

function bd_decrypt(bd_lng, bd_lat) {
  var X_PI = Math.PI * 3000.0 / 180.0;
  var x = bd_lng - 0.0065;
  var y = bd_lat - 0.006;
  var z = Math.sqrt(x * x + y * y) - 0.00002 * Math.sin(y * X_PI);
  var theta = Math.atan2(y, x) - 0.000003 * Math.cos(x * X_PI);
  var gg_lng = z * Math.cos(theta);
  var gg_lat = z * Math.sin(theta);
  return {lng: gg_lng, lat: gg_lat}
}
1
2
3
4
5
6
7
8
9
10

# 高德坐标转百度(传入经度、纬度)

function bd_encrypt(gg_lng, gg_lat) {
  var X_PI = Math.PI * 3000.0 / 180.0;
  var x = gg_lng, y = gg_lat;
  var z = Math.sqrt(x * x + y * y) + 0.00002 * Math.sin(y * X_PI);
  var theta = Math.atan2(y, x) + 0.000003 * Math.cos(x * X_PI);
  var bd_lng = z * Math.cos(theta) + 0.0065;
  var bd_lat = z * Math.sin(theta) + 0.006;
  return {
    bd_lat: bd_lat,
    bd_lng: bd_lng
  };
}
1
2
3
4
5
6
7
8
9
10
11
12
#javascript
上次更新: 2022/04/06, 17:04:00
常用CSS
安利一个网页调试开发利器vConsole

← 常用CSS 安利一个网页调试开发利器vConsole→

最近更新
01
pushjs浏览器通知插件
05-07
02
Express + Element-ui 实现图片&文件上传
04-29
03
vue常用eslint配置模板
04-28
更多文章>
Theme by Vdoing | Copyright © 2020-2022 Mrcdh | 苏ICP备2020058908号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式