```
//解析 URL Params 为对象
var str = 'http://www.zhufengpeixun.cn/?lx=1&from=wx&b=12&c=13#qqqq';
function getParam(url){
var reg = /([^?=&]+)=([^?=&#]+)/g;
let obj = {};
url.match(reg).forEach(item=>{
let a = item.split('='); // ['lx','1']
obj[a[0]] = a[1]
})
return obj
}
getParam(str);
```
//=================================================
```
//模板引擎实现
let template = '我是{{name}},年龄{{age}},性别{{sex}}';
let data = {
name: '姓名',
age: 18
}
render(template, data); // 我是姓名,年龄18,性别undefined
function render(template, data) {
const reg = /\{\{(\w+)\}\}/; // 模板字符串正则
if (reg.test(template)) { // 判断模板里是否有模板字符串
const name = reg.exec(template)[1]; // 查找当前模板里第一个模板字符串的字段
template = template.replace(reg, data[name]); // 将第一个模板字符串渲染
return render(template, data); // 递归的渲染并返回渲染后的结构
}
return template; // 如果模板没有模板字符串直接返回
}
```
//=================================================
```
// 出现次数最多的字符
var str = 'sfgsdfgsertdgfsdfgsertwegdsfgertewgsdfgsdg';
function getMax2(str) {
str = str.split('').sort().join('');// 把字符串进行排序
let key = '',num = 0;
str.replace(/(\w)\1*/g,function($0,$1){
if($0.length > num){
num = $0.length;
key = $1;
}
})
return{
key,num
}
}
getMax2(str);
```
//=================================================
```
// 千分符的实现
// 100,000,00
//方法1
var str = '1234567'; // 1,234,567
function moneyFormate(str){
str = str.split('').reverse().join('')
let s = '';
for(let i = 0; i < str.length ; i++){
i%3 == 2 ? s+=str[i]+',' : s+=str[i]
}
s = s.split('').reverse().join('')
return s
}
moneyFormate(str);// 1,234,567
// 方法2
var str = '1234567';
function moneyFormate2(str){
let s = '';
// s = str.replace(/\d{1,3}(?=(\d{3})+$)/g,function(a){
// console.log(arguments)
// return a + ','
// })
s = str.replace(/(\d{1,3})(?=(\d{3})+$)/g,'$1,');
return s;
}
moneyFormate2(str);
```
//=================================================
```
var str = ' sdfgsg fsgfsd ';
// 使用正则去除字符串的首尾空格
// 以 1 到 多个 空格开头或者结尾的 都替换成空;
var res = str.replace(/^ +| +$/g,'')
```
- 介绍
- 原生JS
- 1.ES6的新特性
- 2.JS的数据类型
- 3.定义函数的方法
- 4.JS作用域的理解
- 5.闭包的理解
- 6.数组去重
- 7.原型及原型链
- 8.Object.create的作用
- 9.new的执行过程是怎么回事
- 10.call,apply,bind三者的区别
- 11.实现类的继承
- 12.谈谈你对this指向的理解
- 13.DOM
- 14.JS的异步编程
- 15.正则
- http&ajax
- 1.TCP/IP的三次握手和四次挥手
- 2.http常用状态码(http-status-code):
- 3.从浏览器输入URL按回车到页面显示都发生了什么?
- 4.HTTPS和HTTP的区别
- 5.浏览器缓存?
- 6.ajax四步
- 7.一般我们再拦截器中都会写什么代码?
- 8.get请求和post请求有什么区别?什么时候使用post?
- 9.Cookie 和 Session 的区别?
- 10.Token 相关
- 11.什么是同源策略?