typeof 是一个判断类型的操作符,返回一个字符串,指示未经计算的操作数的类型。不需要加括号,
str="123";
console.log(typeof str);=>'string'
类型 结果
Undefined "undefined"
Null "object"
Boolean "boolean"
Number "number"
String "string"
Symbol (ECMAScript 6 新增) "symbol"
宿主对象(由JS环境提供) Implementation-dependent
函数对象 "function"
任何其他对象 "object"
写一个函数求字符串长度,中文占两个字符,英文占一个字符。
function getLength(text){ if(text==null){ return 0; } if(typeof text!="string"){ text+=""; } return text.replace(/[^\x00-\xff]/g,"01").length; }
表单事件
属性 描述 DOM onblur 元素失去焦点时触发 2 onchange 该事件在表单元素的内容改变时触发( , , , 和 ) 2 onfocus 元素获取焦点时触发 2 onfocusin 元素即将获取焦点时触发 2 onfocusout 元素即将失去焦点时触发 2 oninput 元素获取用户输入时触发 3 onreset 表单重置时触发 2 onsubmit 表单提交时触发 2
test()检测指定字符串是否存在返回一个布尔值.
var reg=/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+/; reg.test(str);
判断str是否匹配正则表达式,匹配返回true,否则返回false。
var reg=/cat/g; var str='this a cat,this a dog'; document.write(reg.test(s)); document.write(reg.test(str));
按道理两次打印出来都应该是true,true,而最终结果为true,false。
我们需要注意,在我们定义的正则表达式中后面加上了搜索的方式,g表示全文查找。而且在正则表达式内部有一个lastIndex来记录匹配的位置,第一次调用test()后,那么lastIndex就不再等于0,而是10,当下次在调用该方法的时候,字符串的匹配会从lastIndex位置进行匹配,故最终返回false.所以不要随意添加g.
遇到此种情况后的解决方法:
1.去除g;
2.在第二次使用前,设置reg.lastIndex=0即可。
<label for="user">名称</label>
<input type="text" id="user" class="box">