文档章节

字符串小知识

 麦兜兜12345
发布于 2016/03/25 23:23
字数 1308
阅读 102
收藏 4

  最近一段时间比较急躁,花了大量的时间在看书和看视频上,本想能够快速的了解JS中的有关知识并扩展自己的认识, 少有时间来这里整理和记录了,后来发现知识点看了就忘,还是得多多练习才能把知识内化掉。

一、字符串及有关知识

1、字符串和数组相关性比较大,先说说数组吧。

(1)数组的命名方式有多种,如下:

var arr=new Arrray();

var arr=new Array(3);

var arr=new Array('3');

var arr=[ ];

var arr=[1,2,3];

注意第二个和第三个的区别。

(2)toLocalString(),toString(),valueOf()

所有对象都有以上三种方法,看以下案例区别(来源高程P89):

alert(arr.toString()); (toString()返回的是一个用逗号拼接的字符串)

alert(arr.valueOf);(valueOf返回的还是数组)

alert(arr); (因alert()要接受字符串参数,后台会默认调用toString()方法)

(3)数组中常用的一些方法:

arr.join('-'),用-将arr的各项连成一条字符串,如果直接写join()则会默认以逗号连接arr的各项,感觉和toString()方法一样;

arr.push(value),将value添加到arr的末尾,value可多个,用逗号隔开,其返回值为添加value后的arr;

arr.unshift(value)是将value添加到arr的第一个位置,用法和push一样;

arr.pop(),将arr的最后一项值删除,返回值为该删除项;

arr.shift(),用法和pop()一样,但是是将arr的首项删除;

arr.reverse(),可将arr中的各项顺序颠倒,返回值为颠倒后的arr;

arr.sort(),默认情况下,该方法按升序排列数组项,为实现排列,该方法回调用每个数组项的toString()转型方法,然后比较得到字符串,即使数组中的每项都是数值,sort()方法比较的也是字符串,见P92,但是sort()可接收一个比较函数,函数写在括号内;

arr1.concat(arr2),将arr2添加到arr1后面组成一个新的数组,它的返回值就是这个新的数组;

arr.slice(1,4),截取数组,其返回值为起始到结束位置之间的项,但不包括最后一项,负数的话加上总长度再计量;

arr.splice(起始位置,删除的项,要插入的任意数量的项),可实现删除、插入和替换,其返回值为删除的项;

arr.indexOf(要查找的项,查找起点位置)和arr.lastIndexOf(要查找的项,查找起点位置),一个是从前往后查找,一个是从后往前查找,返回的是项的位置,查找不到则为-1;

arr.reduce(函数,初始值),arr.reduceRight(函数,初始值);

(4)字符串的一些方法:

string.charAt(字符位置),返回该位置下的字符;

string.charCodeAt(字符位置),返回该位置下字符的字符编码;

string.concat(),和数组用法一样;

string.split(''),以split传参的字符来分割字符串为数组,参数为必填的,如果不填则还是为string;

slice(),substr(),substring()用法基本上和数组中的slice()一样,它们的区别体现在参数为负数的时候;

indexOf()和lastIndexOf()和数组中的用法一样;

string.toLowerCase(),string.toUpperCase(),转换字符串的大小写,返回值为转换后的字符串

(5)正则表达式

正则的创建方式:

var re=/a/;或者var re=new RegExp('a');

正则中常应用的几种方法如下(直接写写法):

/re/.test(string);判断string中是否有正则表达式,如果有则返回true,如果没有则返回false;

string.search(re);以正则表达式去匹配字符串,如果匹配成功,则返回匹配成功的位置(以首字母位置确定),如果匹配失败则返回-1;

string.match(re);以正则表达式去匹配字符串,如果匹配成功,则返回匹配成功的数组,可能有多个;

string.replace(re,新字符串/回调函数);以正则表达式去匹配字符串,如果匹配成功,则匹配成功的项替换成新的字符串;

正则默认条件下是区分大小写和一旦匹配成功就会结束匹配的两条原则,若想更改默认条件则应如下:

var re=/a/i 或 var re=new RegExp('a','i'),实现不区分大小写;

var re=/a/g 或 如上将i改为g即可,实现全局匹配;

正则中[ ]括号中的整体代表一个字符(这个要特别注意),[^a] 代表非a, [a-z]代表a-z的任一个字符, [abc]代表abc中任一个;

正则中的转义字符:

\s 代表空格,\d代表数字, \w代表字符(字母、数字、下划线)

\S代表非空格, \D代表非数字, \W代表非字符;

正则中的量词(出现的次数):

{n,m}代表至少出现n次最多出现m次,{n,}代表至少出现n次,*代表出现任意次即{0,},?代表0次或1次即{0,1},+代表出现1次或任意次{1,},{n}代表出现正好n次;

^不在[ ]里面时表示开始,$表示结束;

正则中的一个难点是replace中的回调函数理解,可多看视频;


© 著作权归作者所有

上一篇: ajax记录
下一篇: PS切图
粉丝 2
博文 18
码字总数 7001
作品 0
武汉
私信 提问
Python的基础知识之常用类型-字符串

程序猿的共同点:白发、夜猫子、没对象,但是都知道字符串。 20161291231176472.JPG 字符串 Python中字符串有单引号'' 、双引号 "" 三引号 ''' ''',引号是就近匹配原则 单引号:字符串 ' le......

摸着石头过河_崖边树
2017/12/15
0
0
Java语言中的---字符串

day09 Java语言中的---字符串 一、字符串概述: 字符串在程序中是一个非常重要的知识点,在处理一系列程序的时候都会定义一些字符串来使用。下面我们就来看看如何定义和使用一个字符串。 二、...

孤独一夜
2017/09/27
0
0
面试算法知识梳理(13) - 二叉树算法第三部分

面试算法代码知识梳理系列 面试算法知识梳理(1) - 排序算法 插入排序 希尔排序 选择排序 冒泡排序 计数排序 基数排序 归并排序 快速排序 双向扫描的快速排序 堆排序 面试算法知识梳理(2) - 字...

泽毛
2017/12/22
0
0
C语言数组讲解(二)

谨记 一个人的潜力有多大、能力有多强,是一个未知数,因为我相信能力就是干出来的,以前读过一本书《能力就是干出来的》,这本书就讲述了化保力人生最艰难和辉煌的那段时间,一个农村家境非...

长风留言
2017/11/08
0
0
Python每日一题:第一题

最近加入了Python之禅的知识星球Python之禅和他朋友们 军哥在星球内分享干货,组织交流,让我这个编程小白获益良多。今天我们来学习一下星球内的第一道题目,也算是我学习第一道题后的总结 ...

Treehl
2017/11/01
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周二乱弹 —— 你一辈子都不可能跟她这么亲近

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @tom_tdhzz :#今日歌曲推荐# 分享George Benson的单曲《Six Play》: 《Six Play》- George Benson 手机党少年们想听歌,请使劲儿戳(这里) ...

小小编辑
25分钟前
110
5
优雅的关闭Spring Boot

优雅的关闭Spring Boot 1、实现 TomcatConnectorCustomizer 接口拿到Tomcat的连接获取 Tomcat连接池 2、实现 ApplicationListener<ContextClosedEvent> 监听服务器关闭事件,注册JVM钩子函数...

sowhat
今天
2
0
Python3-Web开发

简介 Web开发框架 什么是Web框架? Web应用程序框架或简单的Web框架表示一组库和模块,使Web应用程序开发人员能够编写应用程序,而不必担心协议,线程管理等低级细节。 virtualenv是一个虚拟...

wuxinshui
今天
4
0
使用技媒体实践编写发布博客

技媒体实践博客 CSDN OSChina 知乎 简书 思否 掘金 51CTO

晨猫
今天
2
0
Lucene

1、什么是全文检索 数据分类 我们生活中的数据总体分为两种:结构化数据和非结构化数据。 结构化数据:指具有固定格式或有限长度的数据,如数据库,元数据等。 非结构化数据:指不定长或无固...

榴莲黑芝麻糊
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部