Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
大家分享一個(gè),就是在Android開發(fā)中,使用Html渲染的方式實(shí)現(xiàn)必填項(xiàng)*號(hào),看這個(gè)怎么實(shí)現(xiàn);
在給大家分享之前,這里推薦下我自己建的Android開發(fā)技術(shù)分享交流平臺(tái) :653961128,不管你是小白還是大牛,我都挺歡迎,不定期分享干貨,包括2017最新的Android企業(yè)案例學(xué)習(xí)資料和零基礎(chǔ)入門教程,歡迎初學(xué)和進(jìn)階中的小伙伴,大家一起交流學(xué)習(xí),共同進(jìn)步。
項(xiàng)目的個(gè)人基本信息UI界面效果圖如下,有一個(gè)紅色的*號(hào),并且跟它挨著的文字顏色不一樣。我這里主要介紹一種有Html渲染的方式;
1、Xml布局(只選取對(duì)應(yīng)的部分)
這里的*符號(hào)和文字其實(shí)也是公用一個(gè)TextView
2、創(chuàng)建對(duì)應(yīng)String資源
這里可以單獨(dú)設(shè)置*符號(hào)和文字的顏色、加粗等操作
<string name="tip_xinghao_nation"> <Data> <![CDATA[<font color="#e60012"> *</font><font color="#189dde">民族 : </font>]] </Data> </string>
3、java代碼中實(shí)現(xiàn)渲染
到這里就可以實(shí)現(xiàn)效果圖里面的效果了,如果更改*符號(hào)和文字顏色和大小的時(shí)候,統(tǒng)一在String資源哪里更改就可以了。
此次分享就到這里,如果大家有什么好的方法實(shí)現(xiàn)的話可以評(píng)論留言哦;喜歡我的可以關(guān)注我
avaScript中共有2個(gè)個(gè)判斷相等的運(yùn)算符 == 和 ===。
這2個(gè)運(yùn)算符的差別在于 == 在判斷相等的時(shí)候會(huì)進(jìn)行類型的轉(zhuǎn)換,而 === 則不會(huì)進(jìn)行類型轉(zhuǎn)換。
一、=== 運(yùn)算符
=== 一般稱之為嚴(yán)格相等。用來判斷兩個(gè)操作數(shù)是否嚴(yán)格相等。
判斷規(guī)則:
首先判斷兩個(gè)操作數(shù)的類型是否一致,如果不一致就直接認(rèn)為不等。
如果兩個(gè)操作數(shù)的類型一致,則再判斷內(nèi)容是否相等。
"true" === true // 類型不一致, false
"0" === 0 //類型不一致 false
"1" === "1" //類型一致,并且內(nèi)容也一致。 true
注意:
如果使用 === 判斷2個(gè)對(duì)象類型的數(shù)據(jù),則直接判斷這 2 個(gè)對(duì)象是否為同一個(gè)對(duì)象。
如果一邊是對(duì)象類型,一邊是基本類型則一定不等。
{} === {} // 兩邊都是對(duì)象,但是不是同一個(gè)對(duì)象,所以 false
[] === [] // 兩邊都是對(duì)象,但是不是同一個(gè)對(duì)象,所以 false
[] === "" // 一變是對(duì)象類型,一邊是基本類型,所以false
二、==運(yùn)算符
==運(yùn)算符判斷相等,由于涉及到類型的強(qiáng)制轉(zhuǎn)換,所以最為復(fù)雜。
需要從4個(gè)方面來進(jìn)行分析:
兩邊都是基本類型,且類型相同
兩邊都是對(duì)象
兩邊都是基本類型,但是類型不同
一邊是基本類型,一邊是對(duì)象
2.1兩邊都是基本類型,且類型相同
這個(gè)最簡(jiǎn)單,就看內(nèi)容是否相等即可。
2.2兩邊都是對(duì)象
這個(gè)也簡(jiǎn)單,規(guī)則和 === 一樣,也是判斷兩個(gè)對(duì)象是否為同一個(gè)對(duì)象。
2.3兩邊都是基本類型,但是類型不同
這個(gè)規(guī)則比較復(fù)雜,很多人也記不住那么多的規(guī)則。
經(jīng)過我的分析和總結(jié),其實(shí)這個(gè)規(guī)則只有一條:
2.4一邊是基本類型,一邊是對(duì)象
這個(gè)規(guī)則也比較復(fù)雜,需要以2.3的規(guī)則為基礎(chǔ)。
經(jīng)過我的分析和總結(jié),其實(shí)規(guī)則只有 2 條:
這種情況比較的時(shí)候,都是先把對(duì)象轉(zhuǎn)換成基本類型再去比較!
先調(diào)用對(duì)象的valueOf方法,如果返回值值是基本類型的數(shù)據(jù),就用這個(gè)返回的基本類型的數(shù)據(jù)去比較。
如果valueOf方法的返回值不是基本類型的數(shù)據(jù),則調(diào)用toString方法,然后使用toString的返回值進(jìn)行比較。
注意:關(guān)于valueOf和toString方法的說明:
這個(gè)兩個(gè)方法是在Object.prototype對(duì)象中定義的,所以所有的對(duì)象都會(huì)繼承這兩個(gè)方法。
默認(rèn)情況下valueOf是返回的這個(gè)對(duì)象的本身(內(nèi)部其實(shí)是返回的this)。
默認(rèn)情況下toString返回的是字符串: [object Object]
但是有些內(nèi)置對(duì)象 覆寫 了這2個(gè)方法。
console.log([1, 2].toString()); // "1,2" 返回的是數(shù)組的元素用,連接起來的字符串
console.log(/a/gi.toString()); // "/a/gi" 正則表達(dá)式的字面量字符串
console.log((function(){//注釋}).toString()); // "function(){//注釋}" 返回函數(shù)源碼
console.log(new Number(10).toString()); // "10" 返回對(duì)應(yīng)的基本類型的字面量形式
console.log(({}).toString()); // "[object Object]"
看下面的代碼:
var obj1 = {
name : "李四"
}
/*
true:
解析: 一邊是對(duì)象,一邊是字符串。則會(huì)把對(duì)象轉(zhuǎn)換成基本類型。
先看valueOf ,默認(rèn)返回的是 對(duì)象,所以再看toString 默認(rèn)返回的是 "[object Object]" 所以是true
*/
console.log(obj1 == "[object Object]"); // true
var obj1 = {
name : "李四",
valueOf : function (){
return 1;
}
}
/*
true:
解析: 一邊是對(duì)象,一邊是number。則會(huì)把對(duì)象轉(zhuǎn)換成基本類型。 先看valueOf ,返回的是 number類型 1,所以用這個(gè)返回值去比較。
*/
console.log(obj1 == 1); // true
var obj1 = {
name : "李四",
valueOf : function (){ //覆寫
return {};
},
toString : function (){ // 覆寫
return this.name;
}
}
/*
true:
解析: 一邊是對(duì)象,一邊是String。則會(huì)把對(duì)象轉(zhuǎn)換成基本類型。 先看valueOf ,返回的是 對(duì)象,所以調(diào)用toString,返回的是字符串 "李四"。
*/
console.log(obj1 == "李四"); // true
var arr = [1, 2];
/*
true:
解析: 一邊是對(duì)象,一邊是字符串。則會(huì)把對(duì)象轉(zhuǎn)換成基本類型。 先看valueOf ,默認(rèn)返回的是 對(duì)象,所以調(diào)用toString,返回的是字符串 "1,2"。
*/
console.log(arr == "1,2"); // true
var arr = [1, 2];
arr.valueOf = function (){
return true;
}
/*
true:
解析: 一邊是對(duì)象,一邊是字符串。則會(huì)把對(duì)象轉(zhuǎn)換成基本類型。 先看valueOf ,默認(rèn)返回的是 布爾值 true,然后把true轉(zhuǎn)換成number 1,
右邊是字符串,然后把字符串轉(zhuǎn)換number 1
所以true
*/
console.log(arr == "1");
三、總結(jié)
===一句話總結(jié):先看類型,類型相同再比較內(nèi)容。類型不同,直接false
==一句話總結(jié):不同基本類型,則都向numbe方向轉(zhuǎn),然后比較。 一邊對(duì)象一邊基本類型,則對(duì)象先調(diào)用valueOf,再調(diào)用toString來轉(zhuǎn)成基本類型,再比較。
JavaScript中,我們可以使用正則表達(dá)式來匹配手機(jī)號(hào)的模式。以下是一個(gè)基本的手機(jī)號(hào)驗(yàn)證函數(shù),它可以用來檢查一個(gè)字符串是否符合中國大陸的手機(jī)號(hào)格式。中國大陸的手機(jī)號(hào)一般為11位數(shù)字,且以1開頭,第二位是3、4、5、6、7、8、9中的一個(gè),并且是13、14、15、16、17、18、19開頭的號(hào)碼。
javascript
function isValidChineseMobile(phone) {
var regex = /^1[3-9]\d{9}$/;
return regex.test(phone);
}
// 使用示例
console.log(isValidChineseMobile("13800138000")); // 應(yīng)返回 true
console.log(isValidChineseMobile("12345678900")); // 應(yīng)返回 false
這個(gè)函數(shù)isValidChineseMobile接受一個(gè)字符串參數(shù)phone,使用正則表達(dá)式/^1[3-9]\d{9}$/進(jìn)行匹配。這個(gè)正則表達(dá)式的含義是:
test方法是正則表達(dá)式的一個(gè)方法,它用于測(cè)試字符串是否匹配正則表達(dá)式。如果匹配,返回true,否則返回false。
請(qǐng)注意,手機(jī)號(hào)規(guī)則可能會(huì)隨著時(shí)間和地區(qū)的不同而變化,所以這個(gè)正則表達(dá)式可能需要根據(jù)實(shí)際情況進(jìn)行調(diào)整。此外,這個(gè)函數(shù)只是一個(gè)基本的驗(yàn)證,它不考慮手機(jī)號(hào)的運(yùn)營商和地區(qū)的具體規(guī)則,也不檢查手機(jī)號(hào)是否真實(shí)注冊(cè)。在實(shí)際應(yīng)用中,你可能需要更復(fù)雜的驗(yàn)證邏輯,甚至可能需要與手機(jī)號(hào)服務(wù)提供商的API進(jìn)行交互來驗(yàn)證手機(jī)號(hào)的真實(shí)性。
一個(gè)也不是很懂得人弄得,若有不對(duì)的地方還請(qǐng)海涵
*請(qǐng)認(rèn)真填寫需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。