1. 程式人生 > 其它 >2016.05 第1周 群問題分享

2016.05 第1周 群問題分享

HTML+CSS

a標籤href屬性的作用

2016.05.02~2016.05.06

核心概念

a標籤href屬性

參考答案

a標籤定義超連結,用於從一個頁面連結到另一個頁面;

a標籤最重要的屬性是href屬性,它指示連結的目標;href屬性裡面的值url,規定連結指向的頁面的url;在HTML5中,a標籤始終是超連結,但是如果未設定href屬性值,則只是超連結的佔位符;如果不跳轉頁面則可以設定成href="javascript:;"或者href="void(0);"。


怎麼在一個頁面中點選圖片跳轉到另一個頁面播放視訊

2016.05.02~2016.05.06

核心概念

a標籤、HTML5視音訊

參考答案

在一個頁面中點選圖片進入到另一個頁面進行播放視訊,只需要a標籤包含一個img標籤,a標籤裡面的href屬性裡面對應的寫上視訊播放地址(頁面)即可。針對視訊播放問題,HTML5可以簡簡單單實現視訊、音訊的播放功能,用一個video標籤足矣。video標籤雖好用,但是其預設樣式在各個瀏覽器的表現形式千奇百怪。

解決辦法可以在HTML5學堂官網搜尋“HTML5視音訊”


<a href="#" target="_self">陳林</a>表示什麼

2016.05.02~2016.05.06

核心概念

a標籤裡面的屬性

參考答案

href="#"表示的是錨鏈接,當你頁面有滾動時,你點連結會跳轉到頁面的頂部;

target值表示的是從哪裡開啟頁面,預設就是從當前視窗開啟,用_self表示(連結的內容顯示在當前視窗中);用_blank表示在新視窗開啟頁面;


如何把ul li的圓點變為小方塊

2016.05.02~2016.05.06

核心概念

list-style-type屬性

參考答案

list-style-type: square;

JavaScript

正則表示式驗證身份證號碼

2016.05.02~2016.05.06

核心概念

正則表示式、身份證號碼生成原理

參考答案

書寫正則表示式之前,需要先了解身份證號碼的基本規則。

/*
* 身份證18位編碼規則:dddddd yyyymmdd xxx y
* dddddd:6位地區編碼
* yyyymmdd: 出生年(四位年)月日,如:19910215
* xxx:順序編碼,系統產生,無法確定,奇數為男,偶數為女
* y: 校驗碼,該位數值可通過前17位計算獲得
* HTML5學堂出品 http://www.h5course.com 請尊重原創
* 前17位號碼加權因子為 Wi = [ 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2 ]
* 驗證位 Y = [ 1, 0, 10, 9, 8, 7, 6, 5, 4, 3, 2 ]
* 如果驗證碼恰好是10,為了保證身份證是十八位,那麼第十八位將用X來代替
*/

校驗位計算方法:身份證前17位,每一位數字和相應位數的加權因子進行乘法運算,之後求和(17項之和),再用這個和對11取餘,所得的餘數作為“驗證位陣列Y”的下標,也就是Y[餘數],找到“驗證位陣列Y”中的相應數字,如果身份證最後一位和這個數字吻合,則身份證號碼合法(如果最後一位是X/x,就對應於“驗證位陣列Y”中的10這個數字)

例項:

假如是這個身份證號碼(這個身份證號碼是我瞎編的):110203198811120342。

於是,複雜的計算開始了。取出身份證前17位,與[7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]中對應的位分別進行乘法運算,於是乎:

sum = 1 * 7 + 1 * 9 + 0 * 10 + 2 * 5 + ... + 3 * 4 + 4 * 2。

我們能夠計算出來,總和為177。之後用177對11取餘,餘數為1。那麼在[1, 0, 10, 9, 8, 7, 6, 5, 4, 3, 2]陣列中,下標為1的元素就是第二個元素,也就是數值為0。此時將0與身份證號的最後一位(2)做比較,很明顯,錯誤,那麼也證明了這個號碼是我瞎編的了……

於是乎,完整匹配身份證號碼的正則華麗麗的誕生了~~~

var reg =/^[1-9]d{5}[1-9]d{3}((0[1-9])|(1[0-2]))((0[1-9])|([1-2]d)|(3[0-1]))((d{4})|(d{3}[Xx]))$/;

相關知識可以在HTML5學堂官網搜尋“正則驗證身份證號碼”


操作符與資料型別

2016.05.02~2016.05.06

核心概念

變數宣告、資料型別、操作符

參考答案

題目:

<script>
    var a;
    var b = a * 0;
    if (b == b) {
       console.log(b * 2 + "2" - 0 + 4);
    } else {
       console.log(!b * 2 + "2" - 0 + 4);
    }
</script>

1 聲明瞭變數a,但是未進行賦值,所以a的預設初始值為undefined;

2 var b = a * 0; undefined的數學運算最終結果為NaN;

3 NaN是代表非數字值的特殊值;NaN不等於NaN;NaN在布林值當中是false,所以!NaN在布林值裡面就是true,true轉換成數字就是1;

1 * 2 + '2' --> 此處的+是連字元,構成'22'這個字串;

'22' - 0 --> 此處將'22'從字串轉換為數字22(隱式轉換)。最後就是22 + 4 = 26。

相關知識可以在HTML5學堂官網搜尋“資料型別轉換或者HTML5真題練習”

HTML5學堂小編 - 陳林 耗時5h