javascript第七天

来源:互联网 发布:网络食品安全专项整治 编辑:程序博客网 时间:2024/05/22 01:26

内置对象

内置对象是ES标准中已经定义好的,由浏览器厂商已经实现的标准对象!内置对象中封装了专门的数据和操作数据常用的API。

Javascript中内置对象包括:String、Boolean、NUmber、Math、Array、Date、Error、Function、Object、Global 

包装类型:String、Boolean、Number

String

charAt():获取指定位置的字符

charCodeAt():获取指定位置字符的unicode编号

*************************************

input=prompt("输入信息:");

var result = [];

for(var i=0;i<input.length;i++){

result.push(input.charCodeAt(i));

}

document.write(result.join(""));

//以上方法的缺点在于,每次字符串进行+=时会创建无数多的没用的字符串

//代码优化后

input=prompt("输入信息:");

var result = "";

for(var i=0;i<input.length;i++){

var num = input.chartCodeAt(i);

if(num<1000){

var arr=[0,0,0,0,0];

var code=num+"";

var start=5-num.length;

for(var n=0;n<code.length;n++){

arr[start]=code[n];

start++;

}

num=arr.join("");

}

result+=input.charCodeAt(i)

}

document.write(result);

//频繁对字符串+=,要用数组代替!

//step1:每个字符串放入数组

//step2:join(“”)拼接数组元素

字符串三大操作:1.查找关键字2.替换关键字3获取子字符串

查找关键字:var index=str.indexOf("关键字");返回关键字所在位置!*如果没找到,返回-1!*

indexOf:懒:只找第一个关键字位置!蠢:默认只能从位置0开始!

利用indexOf反复循环查找关键字的语句:

var str="女神说要来,我草草的收拾了房间。结果她又说不来了。我说:我草";

var index = -1;

while((index = str.indexOf("我草",index+1))!=-1){//index+1表示从上次找到位置之后,开始

console.log(“位置” +index+“发现关键字”);

}

从最后一个字符,向前找:var index= str.lastIndexOf("关键字",form);//from:开始查找的位置!从from开始向前查找

2. 截取子字符串:

(1)str.slice(start);

(2)str.substring(start,end+1)

substring和slice用法相同,唯一的区别是substring不支持负值作为参数

(3)str.substr(start,count)

以上三种发放省略第二个参数,默认都是取到结尾!

模式匹配:什么是模式匹配:可以设置查找或替换的规则!

何时使用模式匹配:要查找的关键字可能发生有规律的变化。

如何使用模式匹配:1.先定义模式:/关键字/模式

比如:var reg = /no/i;no是要查找的关键字原文,不加“”i表示忽略大小写!

str = str + str.replace(reg,"新值");//默认的replace仅替换第一个关键字!要想全局替换,要在模式中定义“g”


获得所有关键字的内容:var kwords=str.match(reg);只能取得关键字的内容,无法确定每个关键字的位置!

*如果未找到,返回null!以后只要有可能返回null!都要先判断!=null,再处理*

var index=str.search(reg);和indexOf完全相同!

indexOf不支持模式查找!search其实是indexOf的模式查找版


****正则表达式*****

何时使用正则?验证字符串格式,查找关键字,替换关键字

正则表达式:

选择符号:[所有备选字符]:[去草],必须多选一使用,一个[],只能代表一位字符的规则!

[^XXXX]:表示除了XXXXX都行!注意^必须放在[]中的第一个位置,否则,变为普通字符匹配

-符号:字符的范围:备选字符的范围!比如:[0-9][a-z][A-Z][a-zA-Z]

汉子:[\u4e00-\u9fa5]

预定义字符集:使用简化的字符,定义常用字符集

比如:[0-9] -->\d          [a-zA-Z0-9_]-->\w     空字符-->\s

如果规则正文中出现特殊符号,用\转为原文:比如'.'代表任意字符,所以如果想使用.应该用\.

数量词:规定前边一个字符出现次数的量词。语法:{min,max}      

{num}:固定长度

{min,}:至少min个,多了不限

特殊数量词:+  *  ?

?:可有可无,最多只能出现一次

*:可有可无,不限制出现次数

+:至少出现一次!不限制出现次数

():分组:改变模式的匹配顺序    比如:验证身份证号:\d{15}(\d{2}[0-9xX])?


^:如果放在整个正则表达式的开头,表示以XXX开始

$:如果放在整个正则表达式的结尾,表示以XXX结束

?=   :预判,前一个字符之后,必须紧跟XXX

?!  :预判,前一个字符之后,必须不能跟XXX



RegExp对象:专门封装一条正则表达式,提供使用正则表达式的常用API

如何使用RegExp对象:1.创建        2.调用API

如何创建正则表达式对象:var regExp=/正则表达式/ig;

验证:var boolean=regExp.test('被检查的字符串');如果验证通过:返回true;否则返回false


验证要求完整匹配!查找要求部分匹配

test方法默认:只要找到就返回true!

正则表达式必须最前面加^,后加$

查找:exec:查找关键字的位置,又能找到关键字的内容


var str = “明明喜欢我,却不告诉我;别理我,我想静静;静静是谁?你TM先告诉我明明是谁?”

var regExp = /明明|静静/g;

var arr=[];

while((arr=regExp.exec(str)) != null){

//arr[0]关键字的内容

//arr.index:关键字的位置

document.write('在位置'+arr.index+'发现'+arr[0]);

}

查找总结:仅判断有没有,或者仅查找位置:indexOf()

                   仅判断有没有,或者仅查找位置并支持正则:search();

仅找到所有关键字的内容:match();

既找内容,又找位置:exec();

贪婪模式:.*   .+,默认先匹配整个字符串,再缩小范围

懒惰模式:(.*?)     (.+?),从第一个字符开始,向后扩展范围

超链接正则表达式:<a(.*?)href\s*=\s*["'](.*?)["'](.*?)>

从正则表达式匹配的内容中,取一部分:RegExp.$n

n:正则表达式中第n个分组,其实就是第n个圆括号   强调:分组从1开始,必须通过RegExp类型,直接调用$n,不能使用对象!


String对象与正则表达式

str=str.replace("/正则表达式/ig,'替换值'");

var arr=str.match(/正则表达式/ig);                  str.search(/正则表达式/);   str.split(/正则表达式/);

trim功能:去除字符串开始和结尾的空格。中间空格不去掉

对输入字符串的处理,多数要先清楚开头和结尾的空格,再处理

IE8不支持trim()方法!

function trim(str){//使用正则表达式替换开头和结尾的空字符var regExp = /(^\s+) | (\s+$)/g;str = str.replace(regExp,"");return str;}

去掉左空格:

function ltrim(str){var reg = /^\s+/;return str.replace(reg,"");}
去掉右空格function rtrim(str){var reg = /\s+$/;return str.replace(reg,"");}


String总结:所有API都无法修改原字符串,都会返回新字符串,所有StringAPI都需要用变量保存结果!

查找关键字:var index=str.indexOf('关键字',[,from]);

var arr=str.match(/正则/g);

获得子字符串:var substr=str.slice(start,end+1);

str.substring(start,end+1);

str.substr(start,count);

替换:str = str.replace(/正则/g,'替换值');

字符编码转码:var code=str.charCodeAt(index);

var char=String.fromCharCode(code);

RegExp对象总结:

var reg=/正则/ig;

验证str中是否包含reg匹配的关键字:var boolean=reg.test(str);

强调:完整验证,都需要在正则前加^后加$

同时查询所有关键字的内容和位置

while((arr=reg.exec(str))!=null){

arr[0]-->找到的一个关键字

arr.index -->当前关键字的位置

}

RegExp.$n; 获得正则表达式中第n个分组(圆括号)匹配的子字符串


Math类

Math.round(num) --->四舍五入取整

Math.ceil(num)--->向上取整

Math.floor(num)--->向下取整

var arr=[2,3,4,56,8];

var max=Math.max.apply(Math,arr);

获取任意两个数之间的随机数:Math.floor(Math.random()*(max-min+1)+min)

随机生成四位验证码:

step1:将所有字母,数字装入一个数组

var codes=[];

//数字:48-57

for(var i=48;i<=57;codes.push(i),i++);

//大写字母:65-90

for(var i=65;i<=90;codes.push(i),i++);

//小写字母:97-122

for(var i=97;i<=122;codes.push(i),i++);

setp2:

var arr=[];

for(var i=0;i<4;i++){

//从0-61之间随机取,因为一共62个字符

var index=Math.floor(Math.random()*(61-0+1)+0);

var char=String.fromCharCode(codes[index]);

arr.push(char);

}

var code=arr.join("");

document.write("验证码:"+code);


0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 苹果5s访问限制密码忘了怎么办 京东买的暴风电视出现问题了怎么办 控水一个月的三角梅还没开花怎么办 帮别人办手机分期不还怎么办 国美在线没有信用卡分期不了怎么办 手机店办理分期被老板套现了怎么办 美的空调保修卡丢了怎么办 格力空调保修卡丢了怎么办 荣耀9i手机总是滑手怎么办? 春兰空调没发票不给修怎么办 洗衣机顶盖的安全开关坏了怎么办 苹果手机的开关健坏了怎么办 淘宝买的东西快递弄破损了怎么办 京东购买邮来手机里面没有怎么办 孕期建卡病历本丢了怎么办 四维检查胎儿心脏有缺陷怎么办 七个月的宝宝俩个蛋蛋都疝气怎么办 电脑有些网站看视频不能全屏怎么办 小米滑板车坏了售后不保修怎么办 红米4a电池不耐用怎么办 华为手机买个别人退货的怎么办 京东购物怎么查订单查询不到怎么办 退款了又收到货怎么办快递打电话 快递未收到货能退款商家拒绝怎么办 黑色牛仔裤有一块洗白了怎么办 黑色牛仔裤被洗衣液烧了怎么办 在蘑菇街退鞋子商家非说脏了怎么办 牛皮屑怎么办ke靠成都银康 微信订阅号取消关注之后还在怎么办 腾讯新闻红包领取说帐号异常怎么办 计算机职弥报名没选模块怎么办 有人用我手机注册有赞了怎么办 一件代发别人的货被投诉了怎么办 淘宝极速退款后商家拒收快递怎么办 运费险退到天猫垫付账户了怎么办 淘宝卖家食品有问题该怎么办 美团外卖不要辣椒给放了怎么办 旺旺卖家拒收我的消息怎么办 淘宝清空购物车大奖到上限了怎么办 游戏无响应除了退出还能怎么办 淘宝给差评了卖家一直打电话怎么办