`
leeqq
  • 浏览: 134908 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

js String的几个方法

    博客分类:
  • web
 
阅读更多

1. indexOf方法

    查找子串起始位置

 

var str = 'hsfwefwef';
var k = str.indexOf('wef')
console.log(k)

 结果是3,明显是匹配的首次出现的位置

 

 

var str = 'hsfwefwef';
var k = str.indexOf('wef', 4)
console.log(k)

 此时匹配位置是从下标4位置处开始的,结果是6。 lastIndexOf与此类似,只是查找的是最后出现的位置

 

 

2. serach方法

 

var str = 'hsfwefwef';
var k = str.search(/wef/)
console.log(k)

 同样找的是首次出现的位置3,不过这里用的是正则匹配。

 

 

var str = 'hsfwefwef';
var k = str.search(/Wef/i)
console.log(k)

 忽略大小写,结果为3,但是这个方法忽略全局模式g。也就是说找不到第二个匹配的位置。

 

 

3. match方法

 

var str = 'hsfwefWef';
var k = str.match(/W(e)(f)/i)
console.log(k)

 用指定参数正则和字符串匹配,结果是

 


 结果是个数组,元素1是匹配到的符合正则的字符串,后面依次是$1, $2……($1, $2意义参照正则表达式)

另外还有两个属性,index:字符串的起始位置,input:原始字符串

同样没有匹配到第二个,这时可以用全局模式/g

 

var str = 'hsfwefWef';
var k = str.match(/W(?:e)(f)/ig)
console.log(k)

 结果是
 返回了字符串中符合正则的两个子串。但这是没$1,$2……更没有index,input属性。

 

 

如果获得详细的信息。请使用 RegExp.exec()

 

var str = 'hsfwefWef';
var reg = /W(?:e)(f)/ig;
var k;
while(k = reg.exec(str)){
  console.log(k);
  console.log(reg.lastIndex)
}
console.log(k);
console.log(reg.lastIndex)

 结果是

 


 看到所有的能匹配正则的子串都能找到,这依赖于正则对象的lastIndex属性。当不能匹配的时候返回值得是null, 同正则对象的lastIndex属性也被置为0。lastIndex其实就是用来标识下次匹配的时候从字符串什么位置开始。

 

4. replace方法

 

var str = 'hsfwefWef';
var k = str.replace('wef', 'pod');
console.log(k);

 结果很明显是hsfpodWef。第一个参数用来指定要被替换的字符串,第二个参数是替换文本

 

 

var str = 'hsfwefwef';
var k = str.replace('wef', function(s){
  return s.toUpperCase();
});
console.log(k);

 第二个参数是函数的话,此函数接受3个参数,被替换的字符串,起始位置,原始字符串。函数的返回值作为替换文本。所以结果是 hsfWEFwef

 

  js里面没有java中的replaceAll方法。但可以用正则实现,将replace方法第一个参数写成正则表达式并且是全局模式。

 

var str = 'hsfwefwef';
var k = str.replace(/wef/g, function(s){
  return s.toUpperCase();
});
console.log(k);

 结果是hsfWEFWEF, 正则表达式是全局模式,能被匹配的所有子串,都要作为参数调用函数,用返回值替换。这里函数的参数顺序是

 

   正则匹配到的子串,$1, $2……,子串位置,原始字符串。

 

当第二个参数仅仅是一个字符串时,其中有$有特定的含义。

$1,$2,$3……  不多说

$& 正则匹配的子串

$` 正则匹配的子串左侧文本

$' 正则匹配的子串右侧文本

 

$$ 直接文本量$

 

var str = 'hsfwefwef';
var k = str.replace(/w(e)f/g, '$\'$1$`');
console.log(k);

 结果hsf  wef  e  hsf  e  hsfwef 用空格空开,看得更清楚点。

 

5. substring

抽取子串

var str = 'hsfwefwef';
var k = str.substring(2, 5)
console.log(k);

 结果 fwe, 提取2(包含)~5(不包含)字符

 

如果第二个参数小于第一个参数,抽取前会交换参数也就是说str.substring(2, 5)和str.substring(2, 2)结果一样,省略第二个参数,会抽取起始位置到结束位置的字符

  类似的方法有substr方法,两个参数分别为起始位置和子串长度,同样省略第二个参数会抽取起始位置到末尾的字符

  还有一个方法叫slice同样抽取子串,参数是起始位置和结束位置,没有结束位置则到末尾,不同的是允许参数负数(从末尾开始计数的),同时不允许结束位置在开始位置之前,该方法不会交换参数,所以会返回空字符串

 

 

 
  • 大小: 2.4 KB
  • 大小: 533 Bytes
  • 大小: 4.8 KB
分享到:
评论

相关推荐

    Javascript中String的常用方法实例分析

    本文实例讲述了Javascript中String的常用方法。分享给大家供大家参考。具体如下: // length属性:获取字符串的字符个数。 var s='\u7231\u50cf\u4e00\u9635\u98ce'; alert(s.length); // charAt(index)...

    C#执行Javascript代码的几种方法总结

    一、开源项目 Javascript .NET ... (缺点就是asp.net web应用上,好象会报错) 示例代码: 代码如下:using Noesis.Javascript; using System;... namespace JsCSharp { class Program { static void Main(string

    微软JavaScript手册

    apply 方法 应用对象的一个方法,用当前对象代替另一对象。 arguments 属性 返回一个包含传递给当前执行函数的每个参数的数组。 Array 对象 提供对创建任何数据类型的数组的支持。 asin 方法 返回一个数的反正弦...

    js String.prototype.trim字符去前后空格的扩展

    最近学习js的时候发现的这个函数,这样很方便地去除前后空格,用正则实现,简单方便。下面软件开发网小编就为大家分享一下几种实现方式。 String.Prototype.trim() trim()返回一个字符串两端空白字符被删除的新字符...

    Javascript拓展String方法小结

    拓展了几个常用的方法,需要的朋友可以参考下

    javascript函数大全

    变量名.charAt(第几位),取该变量的第几位的字符. 94."abc".charCodeAt(第几个),返回第几个字符的ASCii码值. 95.字符串连接:string.concat(string2),或用+=进行连接 96.变量.indexOf("字符",起始位置),返回...

    javascript文档

    apply 方法 应用对象的一个方法,用当前对象代替另一对象。 arguments 属性 返回一个包含传递给当前执行函数的每个参数的数组。 Array 对象 提供对创建任何数据类型的数组的支持。 asin 方法 返回一个数的反正弦...

    JavaScript学习文档大全.zip #资源分享达人#

    我这里首先有一个完整的笔记(上几万字总结),还有参考文档,其中包含:Array对象的方法参考表格,Canvas参考手册,Date对象方法参考表格,HTML事件列表,jQuery的事件方法,jQuery选择器参考手册,Math参考文档,...

    js 判断数据类型的几种方法

    先举几个例子: var a = "iamstring."; var b = 222; var c= [1,2,3]; var d = new Date(); var e = function(){alert(111);}; var f = function(){this.name="22";};  1、最常见的判断方法:typeof ...

    107个常用javascript语句

    94."abc".charCodeAt(第几个),返回第几个字符的ASCii码值. 95.字符串连接:string.concat(string2),或用 =进行连接 96.变量.indexOf("字符",起始位置),返回第一个出现的位置(从0开始计算) 97.string.lastIndexOf...

    js-string-comparison::cowboy_hat_face:一个使用JavaScript实现不同字符串相似度的库

    JavaScript 实现 一个实现不同字符串相似性、距离和 sortMatch 度量的库。 目前实现了十几种算法(包括 Levenshtein 编辑距离和兄弟姐妹、最长公共子序列、余弦相似度等)。 查看下面的汇总表以获取完整列表... 参数...

    javascript函数的解释

    94."abc".charCodeAt(第几个),返回第几个字符的ASCii码值. 95.字符串连接:string.concat(string2),或用+=进行连接 96.变量.indexOf("字符",起始位置),返回第一个出现的位置(从0开始计算) 97.string.lastIndexOf...

    浅谈javascript和java中的字符串

     创建一个字符串有几种方法。  1、简单的是用引号将一组字符包含起来 var myStr = "Hello, String!";// 在js中单双引号没有区别  2、可使用如下语句:var myStr1 = new String("Hello, String!");  ...

    fix-ie5.js扩展在IE5下不能使用的几个方法

    String对象的replace方法不支持替换成一个处理函数。 使用下面的代码就可修复上述方法在IE5下无效的问题。 /* fix-ie5.js, version 1.0 (pre-release) (2005/05/15) x3 Copyright 2005, Dean Edwards Web: ...

    JS数据类型判断的几种常用方法

    JavaScript 中常见数据类型有Number、String、Boolean、Object、Array、Json、Function、Date、RegExp、Error、undefined、Null等十几种。ES6还有新增的数据类型有Symbol、Set、Map等。在实际应用中,我们经常需要...

    javascript编码的几个方法详细介绍

    该方法不会对 ASCII 字母和数字进行编码,也不会对下面这些 ASCII 标点符号进行编码: * @ – _ + . / 。其他所有的字符都会被转义序列替换。 提示和注释 提示:可以使用 unescape() 对 escape() 编码的字符串进行...

    JavaScript对象验证库js-validator.zip

    制定验证规则对于同一个对象属性,你可以并列制定几个不同的规则进行限定,使用|作为不同规则间的分割符。var rules = {  text: 'required|string',  date: 'date|date_format:yyyy-MM-dd',  comments: '...

    mysql输出数据赋给js变量报unterminated string literal错误原因

    从mysql读取某一文本数据,付给js变量比如 代码如下:[removed]var strs=”苏润葡萄种植园依托沪宁高速和扬溧高速两大交通走廊,紧邻镇荣公路上党镇薛村段,离...把那段文本复制到txt中打开发现出现了几个黑方块,原来

    JS组件Bootstrap Table使用方法详解

    JS组件Bootstrap Table使用方法详解 转载 2016年03月21日 15:06:09 标签: Bootstrap Table 最近客户提出需求,想将原有的管理系统,做下优化,通过手机也能很好展现,想到2个方案: a方案:保留原有的页面,新设计...

    几个一看就会的 TypeScript 小技巧

    但是 JS 的属性可以是 string、number、symbol 这三种类型的。 要 K extends string | number | symbol。 不不不,TypeScript 有个编译选项叫做 keyofStringsOnly,开启了那么就就只会用 string 作为索引,否则才是...

Global site tag (gtag.js) - Google Analytics