```
//解析 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.什么是同源策略?