JS 字符串的操作

JS字符串操作还是很频繁,如果同正则表达式结合起来,功能非常强大。

1.test

   验证字符串是否符合正则表达式。

/\s+/.test(" i‘m you");  //true

它只会返回true和false;

2.Match

   字符串内检索指定的值,或找到一个或多个正则表达式的匹配。

匹配到值返回一个数组,否则返回为null。

2.1 match的使用与正则表达式的g标志有很大的关系,如果正则中没有g,那么第 0 个元素存放的是匹配文本,

还含有两个对象属性。index 属性是匹配文本的起始字符中的位置,input 属性字符串的引用。

var str="1 plus 2 equal 3"
console.log(str.match(/\d+/));
//["1", index: 0, input: "1 plus 2 equal 3"]

注意:如果你需要获得到index属性,应该是:

str.match(/\d+/).index。

如果正则表达式中有分组:

var str="1 plus 2 equal 3"
console.log(str.match(/(\d)\s+(eq)+/));
//["2 eq", "2", "eq", index: 7, input: "1 plus 2 equal 3"]

数组中除了匹配到了正则表达式的部分,还有子表达式的部分。

2.2 如果正则表达式中有g标志,match() 方法将执行全局检索,找到所有匹配子字符串。

var str="1 plus 2 equal 3"
console.log(str.match(/\d+/g));
//["1", "2", "3"]

Match无法获取到多个子表达式的值,想获取可以用exec。

 3.exec

   在调用非全局的 RegExp 对象的 exec() 方法时,返回的数组与调用方法 match() 返回的数组是相同的。

   区别在于正则表达式是全局时,会有一个lastIndex属性,这个属性匹配文本的最后一个字符的下一个位置。

var str="1 plus 2 equal 3 2 ep3";
var regex= /(\d)\s+(e[qp])+/g;
console.log(str.match(regex));
//["2 eq", "2 ep"]
console.log(regex.lastIndex);
//0
console.log(regex.exec(str));
//["2 eq", "2", "eq", index: 7, input: "1 plus 2 equal 3 2 ep3"]
console.log(regex.lastIndex);
//11

为了获取到所有的分组,可以这么做:

var str="1 plus 2 equal 3 3 ep3";
var regex= /(\d)\s+(e[qp])+/g,result;
while((result = regex.exec(str))!== null) {
   console.log(result);
   console.log(regex.lastIndex);
}
// ["2 eq", "2", "eq", index: 7, input: "1 plus 2 equal 3 3 ep3"]
// 11
// ["3 ep", "3", "ep", index: 17, input: "1 plus 2 equal 3 3 ep3"]
// 21

 4.replace

     用于在字符串中用一些字符替换另一些字符,

     replacement 中的 $ 字符具有特定的含义。如下表所示,它说明从模式匹配得到的字符串将用于替换

$1、$2、...、$99 与 regexp 中的第 1 到第 99 个子表达式相匹配的文本。
$& 与 regexp 相匹配的子串。
$` 位于匹配子串左侧的文本。
$‘ 位于匹配子串右侧的文本。
$$ 直接量符号。

例如:把url中的u=32替换成u=32-8;

var u = 8;
window.location.href.replace(/[?&]u=([^&]+)/,function($0,$1){
     return $0.replace($1, $1+ ‘-‘ +u);
})
时间: 2024-08-04 15:27:58

JS 字符串的操作的相关文章

【2017-04-01】JS字符串的操作、时间日期的操作、函数、事件、动画基础

一.字符串的操作 1.转大写: s.toLowerCase(); 2.转大写: s.toUpperCase(); 3.字符串的截取: s.substr(3,4);      -从索引3开始截取,截取4位.索引从0开始. 4.将字符串按指定的字符拆开: s.split(",");             引号内放指定的字符.返回的是一个数组. 5.字符串长度: s.length; 6.字符串中一个字符的索引: s.indexOf("world");      worl

JS字符串的操作

1.字符串转换 字符串转换是最基础的要求和工作,你可以将任何类型的数据都转换为字符串,你可以用下面三种方法的任何一种: var num=24; var mystr=num.toString(); //"24" 你同样可以这么做: var num=24; var mystr=String(num); //"24" 或者,在简单点儿: var num=24; var mystr="" + num; //"24" 2.字符串分割 将

0003.js字符串操作

通过 + 连接符拼接字符串: var str1 = "hello"; str1 = str1 + " javaScript"; document.write(str1); 或者: var str1 = "hello"; str1 += " javaScript"; document.write(str1); 输出:hello javaScript 要在字符串中添加换行符,需要使用转义字符"\n",但这种方法

javascript中字符串常用操作总结、JS字符串操作大全

字符串的操作在js中非常频繁,也非常重要.以往看完书之后都能记得非常清楚,但稍微隔一段时间不用,便会忘得差不多,记性不好是硬伤啊...今天就对字符串的一些常用操作做个整理,一者加深印象,二者方便今后温习查阅. String对象属性 (1) length属性 length算是字符串中非常常用的一个属性了,它的功能是获取字符串的长度.当然需要注意的是js中的中文每个汉字也只代表一个字符,这里可能跟其他语言有些不一样. var str = 'abc'; console.log(str.length);

js数组的操作及数组与字符串的相互转化

数组与字符串的相互转化 <script type="text/javascript">var obj="new1abcdefg".replace(/(.)(?=[^$])/g,"$1,").split(",");       //字符串转化为数组 var obj2 = "new2abcdefg".split("");                              

js--javascript中字符串常用操作总结、JS字符串操作大全

字符串的操作在js中非常频繁,也非常重要.以往看完书之后都能记得非常清楚,但稍微隔一段时间不用,便会忘得差不多,记性不好是硬伤啊...今天就对字符串的一些常用操作做个整理,一者加深印象,二者方便今后温习查阅. String对象属性 (1) length属性 length算是字符串中非常常用的一个属性了,它的功能是获取字符串的长度.当然需要注意的是js中的中文每个汉字也只代表一个字符,这里可能跟其他语言有些不一样. var str = 'abc'; console.log(str.length);

Js 字符串的三大操作

回顾: var num = str.length:字符个数 str = str.toLowerCase()/toUpperCase() var char = str.charAt(index)  :指定位置的字符 var code = str.charCodeAt(index):指定位置的字符的unicode编码 字符串三大操作: 1.查找关键字 2.替换关机子 3.获取子字符串 查找关键字:var index = str.indexOf("关键字"); 返回关键字所在位置!****如

JS基础-数据类型转化和字符串常用操作

模块回顾 1.数据类型的转化.数-字,字-整,字-浮. 2.字符串常用操作.10种. 一.数据类型的转化 通过"+"号或toString()方法将数值转换成字符串. 2.通过parseInt()将字符串转换成整型. 3.通过parseFloat()将字符串转换成浮点型. <html> <head> <meta charset="utf-8"> <title>数据类型的转换</title> <scrip

js字符串、数组、时间、日期对象

js对字符串.数组.日期的操作是在以后项目中频繁使用的操作,所以呢....所以大家看着办,其实并不难哈,就是有点无聊,我承认这是我百度的,哈哈哈哈 <!DOCTYPE html><html><head><meta charset="UTF-8"><title>JavaScript字符串对象</title></head><body><script type="text/java