丸子學JS(學習1小時 -String和Date練習)

前言

string和date的學習更多的是方法的學習挡篓,搗鼓了一晚上败匹,終究也是把筆記做完了先改,學習真的是需要通過大量的練習來融會貫通

查找方法

  • 字符方法
    a) charAt()
    ■ 功能 返回字符串中第n個字符
    ■ 參數 超出范圍返回空字符串
    ■ 返回值 string中第n個字符的實際值
    b) charCodeAt()
    ■ 功能 返回字符中第n個字符的代碼
    ■ 參數 超出范圍返回NaN
    ■ 返回值 string中第n個字符的unicode編碼
    c) fromCharCode()
    ■ 功能 根據字符編碼創(chuàng)建字符串
    ■ 參數 0個或多個整數毁欣,代表字符的unicode編碼
    ■ 返回值 由指定編碼字符組成的字符串
    ■ 特性 靜態(tài)方法,實為構造函數String()的屬性

嘗試一下

let oBtns = document.querySelectorAll('button')
let oRes = document.querySelectorAll('.res')
var str = '愛我中華';
oBtns[0].onclick = function() {
    oRes[0].innerText = str.charAt(2)
}
oBtns[1].onclick = function() {
    oRes[1].innerText = str.charAt(2) +': '+ str.charCodeAt(2)
}
oBtns[2].onclick = function() {
    oRes[2].innerText = String.fromCharCode(1986)
}
  • 位置方法
    a) indexOf()
    從前向后檢索字符串碍讨,看其是否含有指定字串
    b) lastIndexOf()
    從后向前檢索字符串独泞,看其是否含有指定字串

嘗試一下

let oBtns = document.querySelectorAll('button')
let oRes = document.querySelectorAll('.res')
var str = '愛我中華';
oBtns[0].onclick = function() {
    if(str.indexOf('華') !== -1){
        oRes[0].innerText = "位置:" + str.indexOf('華') + " 含有華"
    }else {
        oRes[0].innerText = "位置:" + str.indexOf('華') + "不含有華"
    } 
}
oBtns[1].onclick = function() {
    if(str.indexOf('你') !== -1){
        oRes[1].innerText = "位置:" + str.lastIndexOf('你') + "含有你"
    }else {
        oRes[1].innerText = "位置:" + str.lastIndexOf('你') + "不含有你"
    }
}
  • 匹配方法
    a) match()
    ■ 功能 找到一個或多個正則表達式的匹配
    ■ 參數 (要進行模式匹配的正則表達式亥至;非正則表達式,將其傳遞給RegExp()構造函數屈溉,并轉換為正則表達式對象)
    ■ 返回值 存放匹配結果的數組1.有全局標記 g 執(zhí)行全局檢索 - 找到 返回數組 (內容:所有匹配的字串塞关;缺陷:沒有派生屬性,不提供與子表達 式匹配的文本信息子巾,不聲明每個匹配字串的位置帆赢;彌補:使用RegExp.exec()方法)
    b) search()
    ■ 功能 檢索字符串中與正則表達式匹配的字串
    ■ 參數 與match()相同
    ■ 返回值
    1. 找到 字符串中第一個與正則表達式相匹配的字串的起始位置
    2. 未找到 返回 -1
    c) replace()
    ■ 功能 替換一個與正則表達式匹配的字串
    ■ 參數 (參數1:需要進行替換正則表達式對象或字符串小压;參數2:替換文本或替換函數)
    ■ 特性 - 如果參數1僅為字符串則只進行一次匹配替換,若替換所有字串則必須制定全局標記g- 如果參數2僅為字符串則可使用特殊字符序列 ($$: 匹配¥椰于; &:匹配整個模式的子字符串怠益;n:匹配第n個捕獲組的子字符串 n=0-9;$nn: 匹配第nn個捕獲組的子字符串 nn=01-99)
    d) split()
    ■ 功能 根據指定分隔符將字符串分割成多個字串瘾婿,并返回成數組
    ■ 參數 (必須:指定的分割符蜻牢;可選:指定數組的長度)

嘗試一下

let oBtns = document.querySelectorAll('button')
let oRes = document.querySelectorAll('.res')
var str = '愛我中華';
oBtns[0].onclick = function() {
    oRes[0].innerText = str.match(/華/g)
}
oBtns[1].onclick = function() {
    oRes[1].innerText = "位置:"+ str.search(/華/g)
}
oBtns[2].onclick = function() {
    oRes[2].innerText = str.replace('愛我', '我愛')
}
oBtns[3].onclick = function() {
    oRes[3].innerText = str.split('')
}

一個小Demo

let oInput = document.querySelector('input')
let oContent = document.querySelector('.content')
let str = oContent.innerText;
oInput.addEventListener('input',function() {
   let reg = new RegExp(this.value, 'g');
   let res =  str.replace(reg, `<span>${this.value}</span>`)
    oContent.innerHTML = res;
})

操作方法

  • 拼接方法 concat()
    ○ 用法 string.concat(value,....)
    ○ 功能 鏈接字符串
    ○ 參數 要連接到string上的一個或多個值
    ○ 返回值 把所有的參數都鏈接到字符串string上得到的新字符串
    ○ 特性 功能和 + 號相同偏陪,原字符串的值不會改變

嘗試一下

let oInput = document.querySelector('input')
let oContent = document.querySelector('.content')
let str = '';
oInput.addEventListener('change',function(e) {
   str = str.concat(this.value)
   oContent.innerHTML = str;
})
  • 截取方法
    a) 根據下標截取字符串
    slice()負值參數抢呆,與字符串長度相加
    substring()負值參數,轉換為0
    b) 根據長度截取字串
    substr() 參數2:返回的字符個數

嘗試一下

let oContent = document.querySelector('.content')
let str = '不應當急于求成笛谦,應當去熟悉自己的研究對象抱虐,鍥而不舍,時間會成全一切饥脑,凡事開始最難恳邀,然而更難的是何以善終。';
oContent.innerHTML = str;
setInterval(function(){
    str = str.replace(str.slice(0,1), '');
    str = str.concat(str.slice(0,1));
    oContent.innerHTML = str;
},220) 
  • 空格處理
    trim 清除前置以及后置的空格
    trimLeft 清除前置的空格
    trimRight 清除后置的空格
  • 比較方法 localCompare()
    ○ 功能 用本地特定順序比較兩個字符串
    ○ 參數 與原字符串進行比較的字符串
    ○ 返回值 說明比較結果的數字 (負數: 原字符串 < 參數字符串灶轰; 0 :相等谣沸;正數:原字符串> 參數字符串)

編碼方法

● 字符串常規(guī)編碼與解碼
a. escape()
b. unescape()
● URI字符串編碼與解碼
a. encodeURI()
b. decodeURI()
● URI組件編碼與解碼
a. encodeURIComponent()
b. decodeURIComponent()

嘗試一下

let oBtns = document.querySelectorAll('button')
let oRes = document.querySelectorAll('.res')
var str = 'https://www.xuexila.com/mingyan/429962.html';
var str02 = '我愛中國'
oBtns[0].onclick = function() {
    oRes[0].innerText = escape(str02)
}
oBtns[1].onclick = function() {
    oRes[1].innerText = unescape(escape(str02))
}
oBtns[2].onclick = function() {
    oRes[2].innerText = encodeURI(str02)
}
oBtns[3].onclick = function() {
    oRes[3].innerText = decodeURI(encodeURI(str02))
}
oBtns[4].onclick = function() {
    oRes[4].innerText = encodeURIComponent(str)
}
oBtns[5].onclick = function() {
    oRes[5].innerText = decodeURIComponent(encodeURIComponent(str))
}

轉換方法

● 大小寫轉換
a. 轉為大寫 toUpperCase(); toLocaleUpperCase()本地
b. 轉為小寫 toLowerCase() 框往;toLocaleLowerCase()本地

嘗試一下

let oBtns = document.querySelectorAll('button')
let oRes = document.querySelectorAll('.res')
var str = 'hello JavaScript';

oBtns[0].onclick = function() {
    oRes[0].innerText = str.toUpperCase()
}
oBtns[1].onclick = function() {
    oRes[1].innerText = str.toLowerCase()
}

Date

● new Date()方法
● getDate() 返回月份中的日期值
● getDay () 返回一周中的日期值
● getFullYear() 返回4位數的年份
● getHours() 返回小時
● getMilliseconds() 返回毫秒數
● getMinutes() 返回分鐘
● getMonth() 返回月份值
● getSeconds() 返回秒數
● getTime() 返回時間對象的毫秒數
● set 同上 用來設置時間
● Date.now() 返回當前事件鳄抒,自濟源開始后的毫秒數
● Date.parse()解析一個日期及實踐的字符串表示闯捎,返回該日期的內部毫秒表示
● Date.UTC ()返回指定的UTC日期及實踐的毫秒表示
● decodeURI() 解碼一個URI中的字符
● encodeURI () 轉義一個URI中的字符

嘗試寫一個小Demo

var spans = document.getElementsByTagName("span");

function getTime(){
  var date = new Date();
  var h = date.getHours() > 10 ? date.getHours(): '0'+ date.getHours();
  var m = date.getMinutes() > 10 ? date.getMinutes(): '0'+ date.getMinutes();
  var s = date.getSeconds() > 10 ? date.getSeconds(): '0'+ date.getSeconds();
  //獲取時分秒
  var newDate = [h,m,s];
  for(var i= 0; i<spans.length;i++){
    //插入時間椰弊,在文檔中輸出
    spans[i].innerHTML = newDate[i];
  }
}
getTime();
//開啟定時器
setInterval(getTime,1000);
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市瓤鼻,隨后出現的幾起案子秉版,更是在濱河造成了極大的恐慌,老刑警劉巖茬祷,帶你破解...
    沈念sama閱讀 212,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件清焕,死亡現場離奇詭異,居然都是意外死亡祭犯,警方通過查閱死者的電腦和手機秸妥,發(fā)現死者居然都...
    沈念sama閱讀 90,755評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來沃粗,“玉大人粥惧,你說我怎么就攤上這事∽钪眩” “怎么了突雪?”我有些...
    開封第一講書人閱讀 158,369評論 0 348
  • 文/不壞的土叔 我叫張陵起惕,是天一觀的道長。 經常有香客問我咏删,道長惹想,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,799評論 1 285
  • 正文 為了忘掉前任督函,我火速辦了婚禮嘀粱,結果婚禮上,老公的妹妹穿的比我還像新娘侨核。我一直安慰自己草穆,他們只是感情好,可當我...
    茶點故事閱讀 65,910評論 6 386
  • 文/花漫 我一把揭開白布搓译。 她就那樣靜靜地躺著悲柱,像睡著了一般。 火紅的嫁衣襯著肌膚如雪些己。 梳的紋絲不亂的頭發(fā)上豌鸡,一...
    開封第一講書人閱讀 50,096評論 1 291
  • 那天,我揣著相機與錄音段标,去河邊找鬼涯冠。 笑死,一個胖子當著我的面吹牛逼庞,可吹牛的內容都是我干的蛇更。 我是一名探鬼主播,決...
    沈念sama閱讀 39,159評論 3 411
  • 文/蒼蘭香墨 我猛地睜開眼赛糟,長吁一口氣:“原來是場噩夢啊……” “哼派任!你這毒婦竟也來了?” 一聲冷哼從身側響起璧南,我...
    開封第一講書人閱讀 37,917評論 0 268
  • 序言:老撾萬榮一對情侶失蹤掌逛,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后司倚,有當地人在樹林里發(fā)現了一具尸體豆混,經...
    沈念sama閱讀 44,360評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,673評論 2 327
  • 正文 我和宋清朗相戀三年动知,在試婚紗的時候發(fā)現自己被綠了皿伺。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,814評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡盒粮,死狀恐怖鸵鸥,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情拆讯,我是刑警寧澤脂男,帶...
    沈念sama閱讀 34,509評論 4 334
  • 正文 年R本政府宣布养叛,位于F島的核電站,受9級特大地震影響宰翅,放射性物質發(fā)生泄漏弃甥。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,156評論 3 317
  • 文/蒙蒙 一汁讼、第九天 我趴在偏房一處隱蔽的房頂上張望淆攻。 院中可真熱鬧,春花似錦嘿架、人聲如沸瓶珊。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽伞芹。三九已至,卻和暖如春蝉娜,著一層夾襖步出監(jiān)牢的瞬間唱较,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,123評論 1 267
  • 我被黑心中介騙來泰國打工召川, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留南缓,地道東北人。 一個月前我還...
    沈念sama閱讀 46,641評論 2 362
  • 正文 我出身青樓荧呐,卻偏偏與公主長得像汉形,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子倍阐,可洞房花燭夜當晚...
    茶點故事閱讀 43,728評論 2 351

推薦閱讀更多精彩內容