String对象及正则表达式

1,String和string还是有区别的,一个就是用双引号或单引号包括起来的数据就是字符串,另一个本质是数组多个字符串组成的只读字符数组;

2,你说string他是数组吧,他和数组还是有点区别的,他们的相同点是都可以通过角标来访问里面的元素 都支持的API  slice

 不同就是数组可以修改原数组,但是字符串不可以          数组可以修改原数组的API字符串不可以,因为字符串的只读原则,一旦创建内容就不可改变

3.String的对象的API

anchor()创建HTML锚点

big()用大号字体显示字符串

blingk()显示闪动字符串

bold()是粗体显示字符串

charAt()返回在指定位子的字符

charCodeAt()返回指定位置的字符串的Unicode编码

concat()连接字符串

fixed()以打字机文本显示字符串  

fontcolor()使用指定的颜色来显示字符串

fontsize()使用指定的尺寸来显示字符串

formCharCode()从字符编码创建一个字符

indexOf()检索字符

italics()使用斜体显示字符串

lastIndexOf()从后向前搜索字符串

link()将字符串显示为链接

localeCompare()用本地特定的顺序来比较两个字符串

match()找到一个或多个正则表达式来匹配

replace()替换与正则表达式匹配的子串

search()检索与正则表达式相匹配的值

slice()提取字符串的片断,并在新的字符串中返回被提取的部分

small()使用小字号来显示字符串

split()把字符串分割为字符串数组

strike()使用删除线来显示字符串

sub()把字符串显示为下标

substr()从起始索引号提取字符串中指定数目的字符

substring()提取字符串中两个指定的索引号之间的字符。

sup()把字符串显示为上标

toLocaleLowerCase()把字符串转换为小写

toLocaleUpperCase()把字符串转换为大写

toLowerCase()把字符串转换为小写

toUpperCase()把字符串转换为大写

toString()返回字符串

这些API当中有很多是和数组的API一样的,其中的用法也是差不多的

4.正则表达式也是我们通常比较常见的

正则表达式可以说是一种规范,规定一个字符串中字符出现的规律的表达式

语法·[备选字符列表]

eg:ex:[微wv][信x]   匹配到的内容: 微信 wx vx 微x v信 w信

其实正则当中的字符是可以省略简写的

一位数字:[0123456789] ==>[0-9]


一位小写字母:[a-z]


一位大写字母:[A-Z]


一位字母:[a-zA-Z]
一位汉字:[\u4e00-\u9fa5]

\w 一位字母数字或_ [0-9a-zA-Z_]
\d 一位数字 [0-9] digital(数位)
\s 一位空字符 一切看不见的字符:空格,Tab ,回车..
. 一位任意字符

字符串的开头 ^ ex: ^\s+ 开头的空字符
字符串结尾 $ ex: \s+$ 结尾的空字符
单词边界 \b ex: \bno\b 匹配no这个单词,但是前和后可以用标点或者空格和其他字符隔开

eg:比如电话号码

还有邮箱

var str = "no one no two three no no now ";
str = str.replace(/(no)|(two)|(now)/g,//将str当中的字符no或two替换
kw=>kw.length==2?"**":"***");//ES6当中新出的箭头函数
//function(kw){//属于自定义函数
// return kw.length==2?"**":"***";
// });
console.log(str);
// str = str.replace(/no/ig,"不");
// console.log(str);

我们可以改变一些敏感的字符和找关键字如上

正则当中的格式化;

var birth="19980720";

birth  =brith.substr(0,4)+‘‘年‘+brith.substr(4,2)+‘月‘+brith.substr(6)+‘‘日‘

birth  =birth.replace(/(\d{4})(\d{2})(\d{2})/,"$1年$2月$3日") ;//用replace按照新的格式进行分组

console.log(birth);

切割的例子:function nameSort(){

1.获取ulName元素当中的HTML的内容
document.getElementById("ulName").innerHTML ="<li>"+document.getElementById("ulName").innerHTML.replace(/^\s*<li>|<\/li>\s*$/g,"").split(/<\/li>\s*<li>/).sort().join("</li><li>")+"</li>";
2.删除html开头的空字符<li>和结尾的</li>的空字符;
 html = html.replace(/^\s*<li>|<\/li>\s*$/g,"");
3.按照html</li>空字符<li>切割html保存到names数组中
var names = html.split(/<\/li>\s*<li>/);
names.sort();//4.对数组进行排序
console.log(names);
5.按照拆分和进行还原
 html = "<li>"+//开头
 names.join("</li><li>")+"</li>";//结尾
 console.log(html);
 document.getElementById("ulName").innerHTML = html;
}
nameSort();

正则的查找匹配

var msg = "吃葡萄不吐葡萄皮,不吃葡萄到吐葡萄皮";
reg = /(吃|吐)(葡萄)/g;
arr = reg.exec(msg);
console.log(arr);
arr = reg.exec(msg);
console.log(arr);
arr = reg.exec(msg);
console.log(arr.index);
// while((arr = reg.exec(msg))!=null){
// console.log(`在位置${arr["index"]}发现敏感词${arr[0]}`);
// }

动态生成的表达式;

var mess = "床前明月光,一行白鹭上青天,日照香炉生紫烟"// var names = ["明月","白鹭","青天","紫烟"];

 var nameReg = new RegExp(names.join("|"),"g");
var kws = mess.match(nameReg);
 console.log(kws);
 var reg = /^\d{6}$/;
 while(!reg.test(prompt("请输入密码:"))){
 alert("密码格式不符!请输入六位数的密码!");
 document.write("<h1>验证通过</h1>");
 }

正则的贪婪及懒惰

var html = ‘<link rel="stylesheet" href="RegExp.htrml"><body><ul><li><a href="www.baidu.com">1</a></li></body>‘;
reg = /<a\s+[^>]*?href="([^"]*?)"/ig;
// //进行分组
while(reg.exec(html)!=null){
console.log(RegExp.$1);
//获取并找到打一个分组的内容
}

这相当与一种爬虫技术

原文地址:https://www.cnblogs.com/zhangli123/p/11294295.html

时间: 2024-10-18 18:35:50

String对象及正则表达式的相关文章

String 对象和正则表达式

一·String 对象方法 概念:多个字符组成的只读字符数组.........String本质上就是数组 和数组的不同 1.数组可以随意修改原数组,但字符串只读字符数组,一旦创建内容不可改变 2.类型不同:数组是Array,字符串是String都不可用 相同 1.都能用[i]访问某个元素或字符 2.都有length属性来记录元素或字符的个数 3.都能有for循环遍历元素或字符 4.都支持slice选取子数组或字符串 常用的API toLowerCase(): 把字符串转为小写,返回新的字符串 v

JavaScript中String对象的match()、replace() 配合正则表达式使用

正则表达式由来已久,查找替换功能非常强大,但模板难记复杂. JavaScript中String对象的match().replace()这2个方法都要使用正则表达式的模板.当模板内容与字符串不相匹配时,match()返回null,replace()返回原字符串. 正则表达式的模板对象 //标准写法 regexp = new RegExp(pattern[, flag]); pattern: 模板的用法是关键,也是本章的主要内容. flag: "i"(ignore)."g&quo

JavaScript正则表达式-相关的String对象方法

JavaScript正则表达式相关的String对象方法有三个: 1.match(). 2.replace(). 3.search(). match() match(regExp); 使用指定的正则表达式来搜索字符串. 如果找到匹配字符串返回一个数组,否则返回null. 返回的数组包含两个属性:index和input. index是匹配字符串在原字符串中的位置. input属性是对原字符串的引用. var reg_pattern = /a\d/; var str = "apple,a2,b3,a

JavaScript 正则表达式,支持正则表达式的String对象方法

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> <script type="text/javascript"> //1.语法 // var reg=new Range("a","i");//这样写更灵活

《Javascript权威指南》学习笔记之十一:处理字符串---String类和正则表达式

一.正则表达式的基本语法 1.概念:正则表达式由普通字符和特殊字符(元字符)组成的文本模式,该模式描述在查找字符串主体时待匹配的一个或者多个字符串.正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配. 普通字符包括所有的大小写字母字符.所有数字.所有标点符号及一些特殊符号.普通字符本身可以组成一个正则表达式,也可以和元字符组合组成一个正则表达式:而元字符则具有特殊的含义,包括().[].{}./.^.$.*.+.?...|.-.?:.?=.?! 2.基本语法 3.优先权含义 二.使用

String对象的属性和方法

创建字符串的两种方法: 1.直接量:var str = ""; 2.字符串对象创建: new String(""); String对象的属性 1.constrcutor 2.prototype 3.length:   str.length可以获取字符串长度 String对象的方法 1.匹配相关:与正则表达式配合使用 (1)str.match(RegExp):匹配指定字符串 (2)str.replace(RegExp):替换指定字符 (3)str.search(Reg

数组对象元素的添加,String对象,BOM对象以及文档对象的获取

数组对象的删除有三种方法: pop();        //移除最后一个元素并返回该元素值shift();      //移除最前一个元素并返回该元素值,数组中元素自动前移splice(0,2); //删除从指定位置deletePos开始的指定数量deleteCount的元素,数组形式返回所移除的元素通过这三种方法我们可以将数组中的元素按进行删除 var del = ["aa",23,345,56,34,"bb"]; var del_last = del.pop()

string对象

string对象用于处理文本(字符串).在js中可以用单引号或者双引号括起来的一个字符串当做一个字符串对象的实例.所以可以在某个字符串后面加上 . 去调用string对象的属性和方法. 创建string对象的语法: new String(str); String(str); 参数: str 是要存储在String对象中或转换成原始字符串的值. 返回值: 当string()和运算符 new 一起作为构造函数使用时,它返回一个新创建的String 对象,存放的是字符串str或str的字符串表示. 当

String对象中常用的方法

String对象中常用的方法 1.charCodeAt方法返回一个整数,代表指定位置字符的Unicode编码.strObj.charCodeAt(index)说明:index将被处理字符的从零开始计数的编号.有效值为0到字符串长度减1的数字.如果指定位置没有字符,将返回NaN.例如:      var  str = "ABC";      str.charCodeAt(0);结果:652.fromCharCode方法从一些Unicode字符串中返回一个字符串.String.fromCh