【JS基础回顾】String对象及其常用属性以及方法

目的很简单,主要回顾下javascript里面String常用的一些属性以及方法,虽然经常使用,但其实一些细节没有注意到,总是等到用到的时候再去查有点浪费时间,因此总结了下加深印象

一、字符串的几种声明方式

var str = 'hello world !';
var str = String('hello world !');
var str = new String('hello world !');
var str = new Object('hello world !');

二、常用String属性和方法

stringObj.length

作用:返回字符串的字符总数



'abc'.length;  //输出:3

stringObj.indexOf(searValue [, fromIndex])

作用:返回searchValue在stringObj中首次出现的位置,默认从位置0开始搜索,除非指了开始搜索的位置 fromIndex

注意:fromIndex可选;如果没有找到searchValue,则返回-1

'abc'.indexOf('c');  //输出 2
'abc'.indexOf('d');  //输出 -1
'abc abc'.indexOf('c', 3);  //输出 6

stringObj.lastIndexOf(searchValue[, fromIndex)

作用:返回searchValue在stringObj中最后一次出现的问题,默认从最后一个字符开始搜索。当指定了fromIndex时,则从fromIndex位置处从后往前搜索

注意:fromIndex可选;如果没有找到searchValue,则返回-1

'abc abc'.lastIndexOf('c');  //输出 6
'abc abc'.lastIndexOf('d');  //输出 -1
'abc abc'.lastIndexOf('c', 5);  //输出 2 

stringObj.charAt(index)

作用:返回stringObj指定位置(index)处的字符,index的取值为 0<index<length

注意:若index>stringObj.length或index<0,则返回空字符串""

'abc'.charAt(1);  //输出 b
'abc'.charAt(10);  //输出 ""

stringObj.toUpperCase()

作用:将stringObj中的小写字母全部转成大写字母



'abC'.toUpperCase();  //输出 ABC

stringObj.toLowerCase()

作用:将stringObj中的大写字母全部转成小写字母



'ABc'.toLowerCase();  //输出 abc

stringObj.concat(string1, string2, ... stringN)

作用:连接两个或多个字符串,首先将参数传入的stringX转成字符串,然后依次连接到stringObj的后面

注意:concat方法不会改变stringObj自身

var str = 'abc';
var tmp = str.concat('def'); abcdef
console.log(tmp);
console.log(str);  //输出 abc

stringObj.substring(start[, end])

作用:截取stringObj从start开始,至end为止之前的所有字符,即包括start处的字符,但不包含end处的字符

注意:end为可选参数,如不指定,则截取从start开始到stringObj末尾的所有字符;start、end均为非负整数

'abcdef'.substring(1, 3);  //输出 bc
'abcdef'.substring(1);  //输出 bcdef
'abcdef'.substring(1, 1);  //输出 ""

stringObj.slice(start[, end])

作用:截取stringObj从start开始,到end为止之前的所有字符;即包括start处的字符,但不包括end处的字符。start与end均可为负值,当为负值时,表示从最后一个字符算起的第n个字符,比如-1表示最后一个字符,-2表示倒数第二个字符。

注意:end为可选参数,如不指定,则截取从start开始到stringObj末尾的所有字符

'abcdef'.slice(1,3);  //输出 bc
'abcdef'.slice(1);  //输出 bcdef
'abcdef'.slice(-3);  //输出 def
'abcdef'.slice(-3, 5);  //输出 de

stringObj.split(separator[, howmany])

作用:将separtor为为分隔,将stringObj分割成一个字符串数组。separator可以是字符串或者正则表达式,若为字符串,则以separator为分割符;弱separator为正则表达式,则以符合separator指定模式的字符串作为分隔符。

注意:haowmany为可选参数,表示分割获得的字符串数组的最大长度,如超过howmany指定的长度,则对结果进行截断;如果howmany为正则表达式,且包含子表达式,则获得的数组里面包含子表达式匹配的字符串

'hello world'.split(' ');  //输出 ['hello', 'world']
'abcdef'.split('');  //输出 ['a', 'b', 'c', 'd', 'e', 'f']
'aa bb cc dd ee'.split(' ', 3);  //输出 ['aa'
'aaa bbb     ccc  dd'.split(/\s+/);  //输出 ['aaa', 'bbb', 'dd']
'aaa_b_ccc'.split('_b_');  //输出 ['aaa', 'ccc']
'aaa_b_ccc'.split('_(b)_');  //输出 ["aaa", "b", "ccc"]

stringObj.match(regexp)

作用:在字符串内检索指定的正则表达式的匹配结果,该结果与regexp是否有指定全局标志g有关

1)没有g:只是执行一次搜索;如果没有匹配的字符串,则返回null;如果有匹配的字符串,则返回一个数组,数组的第1个元素存放的是
regexp匹配的结果,数组内剩余的其他元素,分别存放regexp子表达式匹配的结果;除此之外,返回结果还有两个属性,分别是input以及
index;input属性存放的是原始字符串stringObj,index是匹配的起始字符在stringObj中的位置

2)有g:进行全局搜索,并返回所有匹配的子字符串(不包含子表达式匹配结果);如果没有匹配的字符串,返回null;如有匹配的字符串,则返回的数组里存放的所有匹配的子字符串;需要注意的时候,此时没有index、input属性

//无全局标志g+无子表达式
var result = 'abc123'.match(/12/);  //输出 ['12']
console.log(result.index);  //输出 3
console.log(result.input);  //输出 'abc123'

//无全局标志g+无匹配结果
result = 'abc123'.match(/def/);  //输出 null

//无全局标志g+有子表达式
result = 'abc123'.match(/bc(123)/);  //输出 ['bc123', '123']

//有全局标志+无子表达式
result = 'abc123abc123'.match(/ab/g);  //输出 ['ab', 'ab']

//无全局标志+有子表达式
result = 'abc123abc123'.match(/abc(123)/);  //输出 ['abc123', 'abc123']

stringObj.search(regexp)

作用:检索与正则表达式regexp匹配的子字符串。如果没有匹配结果,则返回-1;如果有匹配结果,则返回第一个匹配结果的起始位置

'abcdef'.search(/\d/);  //输出 -1
'123-456-789'.search(/-\d/);  //输出 3

作用:将stringObj中的一部分字符串替换为另一部分字符串;如果regexp为字符串,则直接替换
stringObj中等于regexp的第一个子字符串;如果regexp为正则表达式,则需要看是否有全局标志g。如果无g,则替换第一个子串;如果有
g,则替换所有子串;

注意:注意事项比较多,这里只举几个简单例子,更多参考资料请参见http://www.w3school.com.cn/js/jsref_replace.asp

'Hello World'.replace('World', 'Casper');  //返回 'Hello Casper'

'123abc123'.replace(/\d+/, 'D');  //返回 'Dabc123'
'123abc123'.replace(/\d+/g, 'D');  //返回 'DabcD'

'abc123'.replace(/bc(12)/, function(){  //输出 'aBC123'

    console.log(arguments[0]);  //输出 'bc12'(匹配的子字符串)
    console.log(arguments[1]);  //输出 '12'(匹配的第一个子表达式)
    console.log(arguments[2]);  //输出 1(第一个匹配起始的位置)
    console.log(arguments[3]);  //输出 'abc123'(原始字符串)

    return arguments[0].toUpperCase();
});

三、写在后面

一些比较不常用的方法,比如stringObj.charCodeAt,或者标准里面没有明确说明实现的方法,如stringObj.substr,这里没有进行说明,如欲了解,可点击下面的链接查看

主要参考来源:http://www.w3school.com.cn/js/jsref_obj_string.asp

文中示例如有错漏,请指出;如觉得文章对您有用,可点击“推荐” :)

时间: 2016-04-29

【JS基础回顾】String对象及其常用属性以及方法的相关文章

【JS基础回顾】Array对象及其常用属性以及方法

目的很简单,主要回顾下javascript里面Array常用的一些属性以及方法,虽然经常使用,但其实一些细节没有注意到,总是等到用到的时候再去查有点浪费时间,因此总结了下加深印象 一.Array的几种声明方式 var arr = [1, 2, 3]; var arr = new Array(2); //声明一个数组,长度为2,默认填充值为undefined的元素 var arr = new Array(1, 2, 3); var arr = new Object([1, 2, 3]); 关于第二

PowerShell中Get-Date对象的常用属性和方法介绍_PowerShell

本文介绍PowerShell中使用Get-Date得到的日期对象的属性和方法,利用好这些对象和方法,可以极大的增强我们开发的灵活性. 使用Get-Date可以获取到一个时间对象,这个时间对象,可不是仅仅用来输出当前时间这么简单.我们来看看它的属性和方法吧,不看白不看. 要想看一个对象的成员(即对象的属性和方法),可以使用管道符,再加上Get-Member这个cmdlet.很方便滴! 复制代码 代码如下: PS C:\Users\zhanghong> Get-Date | Get-Member T

js基础之DOM中document对象的常用属性方法详解_javascript技巧

-----引入 每个载入浏览器的 HTML 文档都会成为 Document 对象. Document 对象使我们可以从脚本中对 HTML 页面中的所有元素进行访问. 属性 1  document.anchors  返回对文档中所有 Anchor 对象的引用.还有document.links/document.forms/document.images等 2  document.URL       返回当前文档的url 3  document.title       返回当前文档的标题 4  do

js中常用的对象—数组的属性和方法

今天说一下,js中常用的内置对象--Array对象 Array常用属性: length prototype :给系统对象添加属性和方法 Array常用方法: Array.prototype.sum = function(){for(i=0;i<this.length;i++){}} 例子  代码如下 复制代码 实例1 <html> <body> <script type="text/javascript"> var mycars = new A

浅谈js内置对象Math的属性和方法(推荐)_基础知识

属性: constructor 所建立对象的函数参考 prototype 能够为对象加入的属性和方法 E 欧拉常量,自然对数的底(约等于2.718) LN2 2的自然对数(约等于0.693) LN10 10的自然对数(约等于2.302) LOG2E 以2为底的e的对数.(约等于1.442) LOG10E 以10为底的e的对数(约等于0.434) PI ∏的值(约等于3.14159) SQRT1_2 1/2(0.5)的平方根(即l除以2的平方根,约等于o.707) SQRT2 2的平方根(约等于1

求助,asp.net中,js调com组件出现不支持属性或方法

问题描述 现在需要在js中调用C#的dll,查询网上的资料后说需要编写com组件,于是先写了个简单的com组件做测试,但是asp.net中的js调用时一直报错"对象不支持属性或方法"代码是这样的接口:[ComVisible(true)][Guid("2CBD3D76-35F1-4f9d-9C1B-9DBFEE412F76")]publicinterfaceIHello{stringShowHello();}接口的实现[ComVisible(true)][Guid(&

对象不支持属性或方法

问题描述 对象不支持属性或方法 对象不支持"ok ToLaunchComposition"属性或方法,怎么解决 解决方案 如果代码以前正常过,检查下是不是有组件没有注册,或者浏览器的设定.如果你的代码根本没工作过,首先检查有没有创建这样的对象,有没有这个属性或者方法.

JS设置网页图片vspace和hspace属性的方法_javascript技巧

本文实例讲述了JS设置网页图片vspace和hspace属性的方法.分享给大家供大家参考.具体分析如下: hspace可以以像素为单位,指定图像左边和右边的文字与图像之间的间距:vspace 值则是上面的下面的文字与图像之间的距离的像素数 <!DOCTYPE html> <html> <head> <script> function setSpace() { document.getElementById("compman").hspac

js中关于String对象的replace使用详解_javascript技巧

今天在读Qwrap的源码stringH时里边有个 复制代码 代码如下: format: function(s, arg0) { var args = arguments; return s.replace(/\{(\d+)\}/ig, function(a, b) { return args[(b | 0) + 1] || ''; }); } 它的使用方式是: alert(format("{0} love {1}.",'I','You'))//I love you format的实现方