Js基础知识3-字符串、正则表达式全解
字符串的生成转换
你可以将任何类型的数据都转换为字符串,你可以用下面三种方法的任何一种:
var num= 19; //
var myStr = num.toString(); // "19"
var myStr = String(num); // "19"
var myStr = "" +num; // "19"
字符串转化为其他类型
js提供了parseInt()和parseFloat()两个转换函数,Number也可以实现转化
parseInt("1234blue"); //returns 1234
parseInt("0xA"); //returns 10
parseInt("22.5"); //returns 22
parseInt("blue"); //returns NaN
parseInt("10", 2); //returns 2
parseInt("10", 8); //returns 8
parseInt("10", 10); //returns 10
parseInt("AF", 16); //returns 175
parseFloat("1234blue"); //returns 1234.0
parseFloat("0xA"); //returns NaN
parseFloat("22.5"); //returns 22.5
parseFloat("22.34.5"); //returns 22.34
parseFloat("0908"); //returns 908
parseFloat("blue"); //returns NaN
Number(false) //0
Number(true) //1
Number(undefined) //NaN
Number(null) //0
Number( "5.5 ") //5.5
Number( "56 ") //56
Number( "5.6.7 ") //NaN
Number(new Object()) //NaN
Number(100) //
字符的操作
var myStr = "I,love,you,Do,you,love,me";
var theChar = str.charAt(8); //获取指定索引上的字符o
var theCharcode = myStr.charCodeAt(8); //获取指定索引上的字符编码 111
字符串增删查改
//替换
name = " Muaneng Tuanpeng ".trim(); //trim()删除字符串前后空格
name =name.replace("eng","ing"); //replace替换第一个eng成ing。
name =name.replace(/eng/g,"ing"); //replace接收正则表达式,/g替换全部。 //查询
var beginindex=name.indexOf("t",name.length-10);//indexOf和lastindexOf查询子字符串的位置,第二个参数表示从哪个索引开始向对面搜索。length函数表示取字符串的长度。未查询到时返回-1。
var endindex = name.lastIndexOf("g",0); //截取
var subStr = name.slice(1,5); //读取子字符串,起始下标(包含),结束下标(不包含)
name1 = name.substring(beginindex,endindex); //slice、substring参数为首尾下标,substr为起点下标和长度。都不改变源字符串。
name1 = name.substr(-4); //传入负值时,slice将负值加上字符串长度,substr将第一个负值加上字符串长度,第二个负值转为0,substring将负值都转为0 //拼接
name1 = name+"Yes"+1; //使用+号拼接字符串和数据成一个新的字符串
name1 = name.concat("yes"); //也可以使用concat函数拼接字符串 //大小写转换
var lowCaseStr = name.toLowerCase(); //全部转换为小写
var upCaseStr = name.toUpperCase(); //全部转化为大写
字符串比较
比较两个字符串,比较是规则是按照字母表顺序比较的
var myStr = "chicken";
var myStrTwo = "egg";
var first = myStr.localeCompare(myStrTwo); // -1,表示小于
first = myStr.localeCompare("chicken"); // 0,表示等于
first = myStr.localeCompare("apple"); // 1,表示大于
字符串分割
var myStr = "I,Love,You,Do,you,love,me";
var substrArray = myStr .split(","); // ["I", "Love", "You", "Do", "you", "love", "me"];
var arrayLimited = myStr .split(",", 3)[0]; // split()的第二个参数,表示返回的字符串数组的最大长度。这里取["I", "Love", "You"]数组的第一个元素,即"I";
正则法则
正则表达式 = /pattern/flags 其中flags中g表示匹配全部,i表示不区分大小写,m表示匹配多行。
pattern包含 ([{\^$|)?*+.]}元字符,若匹配的字符串中包含元字符,使用\转义。
var patter1 = /(.)u/gi; //正则表达式,标志没有,可为空,也可以使用var patter1 = new RegExp("pattern","flags"),使用new是创建对象
if(patter1.test(name)){ //test查找符合要求的子串是否存在,返回true
RegExp.input; //原始字符串
RegExp.leftContext; //捕捉到的位置的左边字符串
RegExp.rightContext; //捕捉到的位置的右边字符串
RegExp.lastMatch; //返回最近一次与整个正则表达式匹配的字符串 mu
RegExp.lastParen; //返回最近一次捕捉的字符
patter1.global; //返回正则是否包含全局标志g
}
var matches = patter1.exec(name); //查找符合要求的子串。matches.index表示查找到的起始下标,matches.input表示输入字符串。patter1.lastIndex表示查找到的结束下标,matches[0]表示查找到的第一个匹配项,若匹配项为全局模式,则每次调用返回下一个匹配项。
正则表达式字符
\ 做为转义,即通常在"\"后面的字符不按原来意义解释,如/b/匹配字符"b",当b前面加了反斜杆后/\b/,转意为匹配一个单词的边界。
-或-
对正则表达式功能字符的还原,如"*"匹配它前面元字符0次或多次,/a*/将匹配a,aa,aaa,加了"\"后,/a\*/将只匹配"a*"。 ^ 匹配一个输入或一行的开头,/^a/匹配"an A",而不匹配"An a"
$ 匹配一个输入或一行的结尾,/a$/匹配"An a",而不匹配"an A"
* 匹配前面元字符0次或多次,/ba*/将匹配b,ba,baa,baaa
+ 匹配前面元字符1次或多次,/ba*/将匹配ba,baa,baaa
? 匹配前面元字符0次或1次,/ba*/将匹配b,ba
(x) 匹配x保存x在名为$1...$9的变量中
x|y 匹配x或y
{n} 精确匹配n次
{n,} 匹配n次以上
{n,m} 匹配n-m次
[xyz] 字符集(character set),匹配这个集合中的任一一个字符(或元字符)
[^xyz] 不匹配这个集合中的任何一个字符
[\b] 匹配一个退格符
\b 匹配一个单词的边界
\B 匹配一个单词的非边界
\cX 这儿,X是一个控制符,/\cM/匹配Ctrl-M
\d 匹配一个字数字符,/\d/ = /[0-9]/
\D 匹配一个非字数字符,/\D/ = /[^0-9]/
\n 匹配一个换行符
\r 匹配一个回车符
\s 匹配一个空白字符,包括\n,\r,\f,\t,\v等
\S 匹配一个非空白字符,等于/[^\n\f\r\t\v]/
\t 匹配一个制表符
\v 匹配一个重直制表符
\w 匹配一个可以组成单词的字符(alphanumeric,这是我的意译,含数字),包括下划线,如[\w]匹配"$5.98"中的5,等于[a-zA-Z0-9]
\W 匹配一个不可以组成单词的字符,如[\W]匹配"$5.98"中的$,等于[^a-zA-Z0-9]。
字符串原型
通过修改字符串的原型,可以为所有字符串添加公共函数。
String.prototype.startwith = function(text){ //设置字符串引用的原型,为String类型变量添加方法
return this.indexOf(text)==0;
};
var begin = name.startwith("mu"); //调用原型方法
Js基础知识3-字符串、正则表达式全解的更多相关文章
- Js基础知识1-数组操作全解
数组操作全解 js变量类型 var string; var name = "student",age=12; //underfined.null.boolean.string.nu ...
- vue.js基础知识篇(6):组件详解
第11章:组件详解 组件是Vue.js最推崇也最强大的功能之一,核心目标是可重用性. 我们把组件代码按照template.style.script的拆分方式,放置到对应的.vue文件中. 1.注册 V ...
- vue.js基础知识篇(2):指令详解
第三章:指令 1.语法 指令以v-打头,它的值限定为绑定表达式,它负责的是按照表达式的值应用某些行为到DOM上. 内部指令有v-show,v-else,v-model,v-repeat,v-for,v ...
- [JS复习] JS 基础知识
项目结尾,空闲时间,又把<JS 基础知识> 这本书过了一遍,温故知新后,很多知其然不知其所以然的内容 豁然开朗. [1. 用于范围的标签] display :inline or bloc ...
- js系列教程1-数组操作全解
全栈工程师开发手册 (作者:栾鹏) 快捷链接: js系列教程1-数组操作全解 js系列教程2-对象和属性全解 js系列教程3-字符串和正则全解 js系列教程4-函数与参数全解 js系列教程5-容器和算 ...
- NodeJs>------->>第三章:Node.js基础知识
第三章:Node.js基础知识 一:Node.js中的控制台 1:console.log.console.info 方法 console.log(" node app1.js 1> ...
- HTML+CSS+JS基础知识
HTML+CSS+JS基础知识 目录 对HTML+CSS+JS的理解 基础知识 对HTML+CSS+JS的理解 基础知识 插入样式表的三种方式 外部样式表:<link rel="sty ...
- Node.js基础知识
Node.js入门 Node.js Node.js是一套用来编写高性能网络服务器的JavaScript工具包,一系列的变化由此开始.比较独特的是,Node.js会假设在POSIX环境下运行 ...
- 网站开发进阶(十五)JS基础知识充电站
JS基础知识充电站 1.javascript alert弹出对话框时确定和取消两个按钮返回值? 用的不是alert对话框,是confirm confirm(str); 参数str:你要说的话或问题: ...
- JS基础知识笔记
2020-04-15 JS基础知识笔记 // new Boolean()传入的值与if判断一样 var test=new Boolean(); console.log(test); // false ...
随机推荐
- web.xml之context-param,listener,filter,servlet加载顺序及其周边
先以加载spring为例子看看加载顺序的作用: Spring加载可以利用ServletContextListener 实现,也可以采用load-on-startup Servlet 实现,但比如fil ...
- SqlServer数据库查询表信息/列信息(列ID/列名/数据类型/长度/精度/是否可以为null/默认值/是否自增/是否是主键/列描述)
查询表信息(表名/表描述) Value ) AS value FROM sysobjects a Where a.xtype = 'U' AND a.name <> 'sysdiagram ...
- windows远程访问ubuntu下的jupyter notebook必要配置
0.生成配置文件(一般采用默认) jupyter notebook --generate-config 1.打开ipython, 创建一个密文密码 In [1]: from notebook.auth ...
- Ubuntu16.04下安装配置numpy,scipy,matplotlibm,pandas 以及sklearn+深度学习tensorflow配置+Keras2.0.6(非Anaconda环境)
1.ubuntu镜像源准备(防止下载过慢): 参考博文:http://www.cnblogs.com/top5/archive/2009/10/07/1578815.html 步骤如下: 首先,备份一 ...
- bin/hdfs dfs命令存在WARN util.NativeCodeLoader问题消除方法
例如:[hadoop@db01 hadoop-2.5.0]$ bin/hdfs dfs -ls17/03/01 21:50:33 WARN util.NativeCodeLoader: Unable ...
- java---rce
http://foxglovesecurity.com/2015/11/06/what-do-weblogic-websphere-jboss-jenkins-opennms-and-your-app ...
- Linux 程序后台运行
例子: shadowsocks 程序后台运行: sslocal -c /etc/shadowsocks-libev/config.json > /dev/>& & 参考: ...
- H5,PC网页屏幕尺寸相关整理(scrollLeft,scrollWidth,clientWidth,offsetWidth)
HTML:scrollLeft,scrollWidth,clientWidth,offsetWidth到底指的哪到哪的距离之完全详解scrollHeight: 获取对象的滚动高度. scrollLef ...
- 【JMeter】如何优雅的写脚本
cc给发的视频链接: http://v.youku.com/v_show/id_XMzA4Mjg1ODA0MA==.html?spm=a2h3j.8428770.3416059.1 ————————— ...
- 【Pyton】【小甲鱼】类和对象
一.类 定义一个类,例子如下: class Turtle: #定义一个名为Turtle的类,Python中类型约定以大写字母开头 #属性 color='green' weight=10 legs=4 ...