字符串的生成转换

你可以将任何类型的数据都转换为字符串,你可以用下面三种方法的任何一种:

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字符串和正则表达式的更多相关文章

  1. js字符串和正则表达式中的match、replace、exec等函数详解

    正则并不是经常使用,而正则和字符串之间的函数关系又错综复杂,谁是谁的函数,又是怎么样的一种结果,往往我们是看一遍忘一遍,对此我是头疼不已,感觉自己是个笨蛋^_^. 为了以后不再查文档,特此把常用的函数 ...

  2. js字符串和正则表达式中的match、replace、exec等的配合使用

    正则并不是经常使用,而正则和字符串之间的函数关系又错综复杂,谁是谁的函数,又是怎么样的一种结果,往往我们是看一遍忘一遍,对此我是头疼不已,感觉自己是个笨蛋^_^. 为了以后不再查文档,特此把常用的函数 ...

  3. 全面解析JS字符串和正则表达式中的match、replace、exec等函数

    转自:https://www.jb51.net/article/87730.htm 正则表达式(regular expression)描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串.将 ...

  4. js中object、字符串与正则表达式的方法

    对象 1.object.hasOwnProperty(name) 检测object是否包含一个名为name的属性,那么hasOwnProperty方法返回true,但是不包括其原型上的属性. 正则表达 ...

  5. JS字符串替换函数:Replace(“字符串1″, “字符串2″),

    JS字符串替换函数:Replace(“字符串1″, “字符串2″), 1.我们都知道JS中字符串替换函数是Replace(“字符串1″, “字符串2″),但是这个函数只能将第一次出现的字符串1替换掉, ...

  6. 从js的repeat方法谈js字符串与数组的扩展方法

    js将字符串重复N次的repeat方法的8个版本 /* *@desc: 将一个字符串重复自身N次 */ //版本1:利用空数组的join方法 function repeat(target, n) { ...

  7. ASP.NET开发中主要的字符验证方法-JS验证、正则表达式、验证控件、后台验证

    ASP.NET开发中主要的字符验证方法-JS验证.正则表达式.验证控件.后台验证 2012年03月19日 星期一 下午 8:53 在ASP.NET开发中主要的验证方法收藏 <1>使用JS验 ...

  8. 浅谈 js 字符串之神奇的转义

    原文:浅谈 js 字符串之神奇的转义 字符串在js里是非常常用的,但是你真的了解它么?翻阅<MDN String>就可以了解它的常见用法了,开门见山的就让你了解了字符串是怎么回事. 'st ...

  9. js字符串操作

    javascript中字符串常用操作总结.JS字符串操作大全 String对象属性 (1) length属性 length算是字符串中非常常用的一个属性了,它的功能是获取字符串的长度.当然需要注意的是 ...

随机推荐

  1. 2017-2018-2 20155314《网络对抗技术》Exp5 MSF基础应用

    2017-2018-2 20155314<网络对抗技术>Exp5 MSF基础应用 目录 实验内容 实验环境 基础问题回答 预备知识 实验步骤--基于Armitage的MSF自动化漏洞攻击实 ...

  2. 最小生成树(图论)--3366lg【模版】

    题目描述 如题,给出一个无向图,求出最小生成树,如果该图不连通,则输出orz 输入输出格式 输入格式: 第一行包含两个整数N.M,表示该图共有N个结点和M条无向边.(N<=5000,M<= ...

  3. 通过JSP网页连接MySQL数据库,从MySQL数据库中读出一张表并显示在JSP网页中

    1.安装所需软件 ①安装java和tomcat,建立JSP网页最基础的软件②安装MySQL数据库(下载地址:https://www.mysql.com/)③安装Navicat Premium来查看数据 ...

  4. 关于Nginx

    访问 www.a.com 自动跳到 www.b.com(301跳转设置) server { listen 80; server_name www.a.com; rewrite ^/(.*)$  htt ...

  5. java 文件夹的复制

    复制文件夹字节流BufferedInputStream,BufferedOutputStreamFileInputStream,FileOutputStream问题分解(1) 复制一个文件 copyF ...

  6. Omi-router实战 Sorrow.X的web简历

    其实这篇文章,真的没啥写的. 主要是为了学以致用,使用了omi-router写了个,个人简历. 路由demo实战源码:https://github.com/SorrowX/resume_demo de ...

  7. Android6.0权限大全和权限分类

    本文转载至: https://blog.csdn.net/qq_26440221/article/details/53097868 自从出了Android6.0权限管理之后,再也不能像以前那样粘贴复制 ...

  8. 串口通信-MSComm控件使用详解

    串口通信-MSComm控件使用详解 2012年11月13日 09:35:45 他山之石可以攻玉 阅读数:37952更多 个人分类: 控件编程Delphi编程   MSComm 控件通过串行端口传输和接 ...

  9. 【博客大赛】使用LM2677制作的3V至24V数控可调恒压源

    [博客大赛]使用LM2677制作的3V至24V数控可调恒压源   http://bbs.ednchina.com/BLOG_ARTICLE_3013105.HTM LM2677,是TI公司生产的高效率 ...

  10. 深入理解 JVM(上)

    菜鸟拙见,望请纠正(首先:推荐一本书[链接:https://pan.baidu.com/s/15I062n5LPYtRmueAAUFuFA 密码:kyo1]) 一:JVM体系概述 1:JVM是运行在操 ...