大家分享一个,就是在Android开发中,使用Html渲染的方式实现必填项*号,看这个怎么实现;
在给大家分享之前,这里推荐下我自己建的Android开发技术分享交流平台 :653961128,不管你是小白还是大牛,我都挺欢迎,不定期分享干货,包括2017最新的Android企业案例学习资料和零基础入门教程,欢迎初学和进阶中的小伙伴,大家一起交流学习,共同进步。
项目的个人基本信息UI界面效果图如下,有一个红色的*号,并且跟它挨着的文字颜色不一样。我这里主要介绍一种有Html渲染的方式;
1、Xml布局(只选取对应的部分)
这里的*符号和文字其实也是公用一个TextView
2、创建对应String资源
这里可以单独设置*符号和文字的颜色、加粗等操作
<string name="tip_xinghao_nation"> <Data> <![CDATA[<font color="#e60012"> *</font><font color="#189dde">民族 : </font>]] </Data> </string>
3、java代码中实现渲染
到这里就可以实现效果图里面的效果了,如果更改*符号和文字颜色和大小的时候,统一在String资源哪里更改就可以了。
此次分享就到这里,如果大家有什么好的方法实现的话可以评论留言哦;喜欢我的可以关注我
avaScript中共有2个个判断相等的运算符 == 和 ===。
这2个运算符的差别在于 == 在判断相等的时候会进行类型的转换,而 === 则不会进行类型转换。
一、=== 运算符
=== 一般称之为严格相等。用来判断两个操作数是否严格相等。
判断规则:
首先判断两个操作数的类型是否一致,如果不一致就直接认为不等。
如果两个操作数的类型一致,则再判断内容是否相等。
"true" === true // 类型不一致, false
"0" === 0 //类型不一致 false
"1" === "1" //类型一致,并且内容也一致。 true
注意:
如果使用 === 判断2个对象类型的数据,则直接判断这 2 个对象是否为同一个对象。
如果一边是对象类型,一边是基本类型则一定不等。
{} === {} // 两边都是对象,但是不是同一个对象,所以 false
[] === [] // 两边都是对象,但是不是同一个对象,所以 false
[] === "" // 一变是对象类型,一边是基本类型,所以false
二、==运算符
==运算符判断相等,由于涉及到类型的强制转换,所以最为复杂。
需要从4个方面来进行分析:
两边都是基本类型,且类型相同
两边都是对象
两边都是基本类型,但是类型不同
一边是基本类型,一边是对象
2.1两边都是基本类型,且类型相同
这个最简单,就看内容是否相等即可。
2.2两边都是对象
这个也简单,规则和 === 一样,也是判断两个对象是否为同一个对象。
2.3两边都是基本类型,但是类型不同
这个规则比较复杂,很多人也记不住那么多的规则。
经过我的分析和总结,其实这个规则只有一条:
2.4一边是基本类型,一边是对象
这个规则也比较复杂,需要以2.3的规则为基础。
经过我的分析和总结,其实规则只有 2 条:
这种情况比较的时候,都是先把对象转换成基本类型再去比较!
先调用对象的valueOf方法,如果返回值值是基本类型的数据,就用这个返回的基本类型的数据去比较。
如果valueOf方法的返回值不是基本类型的数据,则调用toString方法,然后使用toString的返回值进行比较。
注意:关于valueOf和toString方法的说明:
这个两个方法是在Object.prototype对象中定义的,所以所有的对象都会继承这两个方法。
默认情况下valueOf是返回的这个对象的本身(内部其实是返回的this)。
默认情况下toString返回的是字符串: [object Object]
但是有些内置对象 覆写 了这2个方法。
console.log([1, 2].toString()); // "1,2" 返回的是数组的元素用,连接起来的字符串
console.log(/a/gi.toString()); // "/a/gi" 正则表达式的字面量字符串
console.log((function(){//注释}).toString()); // "function(){//注释}" 返回函数源码
console.log(new Number(10).toString()); // "10" 返回对应的基本类型的字面量形式
console.log(({}).toString()); // "[object Object]"
看下面的代码:
var obj1 = {
name : "李四"
}
/*
true:
解析: 一边是对象,一边是字符串。则会把对象转换成基本类型。
先看valueOf ,默认返回的是 对象,所以再看toString 默认返回的是 "[object Object]" 所以是true
*/
console.log(obj1 == "[object Object]"); // true
var obj1 = {
name : "李四",
valueOf : function (){
return 1;
}
}
/*
true:
解析: 一边是对象,一边是number。则会把对象转换成基本类型。 先看valueOf ,返回的是 number类型 1,所以用这个返回值去比较。
*/
console.log(obj1 == 1); // true
var obj1 = {
name : "李四",
valueOf : function (){ //覆写
return {};
},
toString : function (){ // 覆写
return this.name;
}
}
/*
true:
解析: 一边是对象,一边是String。则会把对象转换成基本类型。 先看valueOf ,返回的是 对象,所以调用toString,返回的是字符串 "李四"。
*/
console.log(obj1 == "李四"); // true
var arr = [1, 2];
/*
true:
解析: 一边是对象,一边是字符串。则会把对象转换成基本类型。 先看valueOf ,默认返回的是 对象,所以调用toString,返回的是字符串 "1,2"。
*/
console.log(arr == "1,2"); // true
var arr = [1, 2];
arr.valueOf = function (){
return true;
}
/*
true:
解析: 一边是对象,一边是字符串。则会把对象转换成基本类型。 先看valueOf ,默认返回的是 布尔值 true,然后把true转换成number 1,
右边是字符串,然后把字符串转换number 1
所以true
*/
console.log(arr == "1");
三、总结
===一句话总结:先看类型,类型相同再比较内容。类型不同,直接false
==一句话总结:不同基本类型,则都向numbe方向转,然后比较。 一边对象一边基本类型,则对象先调用valueOf,再调用toString来转成基本类型,再比较。
JavaScript中,我们可以使用正则表达式来匹配手机号的模式。以下是一个基本的手机号验证函数,它可以用来检查一个字符串是否符合中国大陆的手机号格式。中国大陆的手机号一般为11位数字,且以1开头,第二位是3、4、5、6、7、8、9中的一个,并且是13、14、15、16、17、18、19开头的号码。
javascript
function isValidChineseMobile(phone) {
var regex = /^1[3-9]\d{9}$/;
return regex.test(phone);
}
// 使用示例
console.log(isValidChineseMobile("13800138000")); // 应返回 true
console.log(isValidChineseMobile("12345678900")); // 应返回 false
这个函数isValidChineseMobile接受一个字符串参数phone,使用正则表达式/^1[3-9]\d{9}$/进行匹配。这个正则表达式的含义是:
test方法是正则表达式的一个方法,它用于测试字符串是否匹配正则表达式。如果匹配,返回true,否则返回false。
请注意,手机号规则可能会随着时间和地区的不同而变化,所以这个正则表达式可能需要根据实际情况进行调整。此外,这个函数只是一个基本的验证,它不考虑手机号的运营商和地区的具体规则,也不检查手机号是否真实注册。在实际应用中,你可能需要更复杂的验证逻辑,甚至可能需要与手机号服务提供商的API进行交互来验证手机号的真实性。
一个也不是很懂得人弄得,若有不对的地方还请海涵
*请认真填写需求信息,我们会在24小时内与您取得联系。