javascript中很经常的会用到string类型的变量,对此,总结了几种常用操作或者方法:创建、拼接、子串、大小写转换、判断字符串相等、字符串查找等几种。下面将一一简单描述。

一、js中string的创建。

创建string变量可以说有两种:

一种是最基本的直接声明然后初始化的情况,用引号将一组字符包含起来,这里的引号可以是一对单引号也可以是一对双引号,但是不能是一个单引号和一个双引号组合的形式,即下面的是不正确的。

 var myString = "Fluffy is a pretty cat.';

另一种是用新建对象的形式新建string对象。举例:

 var str1 = "Hello world!";
var str2 = new String("I love you!");

这两种方式都可以新建str变量,但是这两种方式还是不同的,第一种是建立了一个字符串类型的值,而第二种是建立了字符串类型的对象。用typeof运算符可看出,第一种是string,而第二种是Object。

如果想知道字符串长度可以通过length的方式获得,即str1.length。如果想得到字符串指定位置的字符可通过charAt的方式获取。

二、字符串拼接。

字符串拼接是指将两个字符串放到一块组成一个大的新的字符串,拼接也有两种简单方式:

一种是简单地用“+”进行拼接,

 var str = "hello," + " world!";

如果有多个进行拼接,可以使用“+=”进行拼接。

 var result = "";
result += "My name is Anders"
result += " and my age is 25";

String对象还提供了方法concat(),它完成与"+"相同的功能:

 string.concat(value1, value2, ...)

不过concat()方法显然不如"+"来得直观简洁。

三、访问子串

这里的访问子串的意思就是获取字符串的一部分文本,同样有两种方法,一种是substring(),一种是slice()

substring的用法是string.substring(from,to),根据参数就可以看出其具体用法,返回的是从from开始(包括from位置)到end结束(不包括end)中的字符串,from指明了子字符串在原字符串中起始位置,这里要注意是基于0索引的,to是可选的,它指明了子字符串的结束位置,同样是基于0索引的,如果被忽略,则结束位置默认为原字符串的结束。

一般情况下他应该比from的值大,否则,系统将自动调整两者的大小,将小的值作为起始位置,大的值作为结束位置。

举例如下:

 var fullString = "Every dog has his day.";
var section = fullString.substring(0, 4); // section is "Ever".
section = fullString.substring(4, 0); // section is also "Ever".
section = fullString.substring(1, 1); // section is an empty string.
section = fullString.substring(-2, 4); // section is "Ever", same as fullString.substring(0, 4);

对于slice()函数,用法是string.slice(start,end);同样可以通过参数看出具体用法,参数start表示子串的起始位置,如果为负数,那么可以理解为倒数第几个开始,end也可以这么处理。例如-3表示从倒数第三个开始;slice()的参数可以为负数,所以要比substring()更加灵活,但没那么宽容了,如果start比end要大,它将返回一个空字符串(示例略)。

     其实还有一个方法,substr(start,length),但是JavaScript标准不提倡使用该方法。

四、大小写的转换

有些文本框接受输入,然后去与其他已有字符串比较,比如城市,则可能需要调整大小写,这里就需要用到大小写转换工具了,具体方法为toLowerCase()和toUpperCase()方法,举例如下:

 var city = "ShanGHai";
city = city.toLowerCase(); // city is "shanghai" now.

五、字符串相等。

如果要用用户的值与自己数据库中的值作比较,则要用到字符串比较方法,主要两种方法,一种是“==”,另一种是“===”。

对于第一种方法,是完全向后兼容的,标准的"==",如果两个操作数类型不一致,它会在某些时候自动对操作数进行类型转换。例如下面的语句,

 var strA = "i love you!";
var strB = new String("i love you!");

这两个变量含有相同的字符序列,但数据类型却不同,前者为string,后者为object,在使用"=="操作符时,JavaScript会尝试各种求值,以检测两者是否会在某种情况下相等。所以上面的表达式结果为true: strA == strB。

对于第二种方法,是严格的,它在求值时不会这么宽容,不会进行类型转换。所以上述表达式strA === strB的值为false,虽然两个变量持有的值相同。

六、字符串查找。

这里的字符串查找是说判断一个字符串是否包含另一个字符串。用到的方法为indexOf,跟java不一样,不是contains,我个人在这个问题上出过错,所以还是要谨记。

用法为strObj.indexOf(subString[, startIndex]),这里strObj是要判断的字符串,startIndex是可选的,表示查找的开始位置(基于0的索引),如果startIndex省略,则从strObj开始处查找,如果startIndex小于0,则从0开始,如果startIndex大于最大索引,则从最大索引处开始。indexOf()返回strObj中subString的开始位置,如果没有找到,则返回-1。可以如下使用:

 if(largeString.indexOf(shortString) != -1)
{
// 如果包含,进行相应处理;
}

也许一个字符串会包含另一字符串不止一次,这时第二个参数startIndex也许会派上用场,下面这个函数演示如何求得一个字符串包含另外一个字符串的次数:

 function countInstances(mainStr, subStr)
{
var count = 0;
var offset = 0;
do
{
offset = mainStr.indexOf(subStr, offset);
if(offset != -1)
{
count++;
offset += subStr.length;
}
}while(offset != -1)
return count;
}

String对象有一个与indexOf()对应的方法,lastIndexOf():

 strObj.lastIndexOf(substring[, startindex])

strObj为要进行判断的字符串,subString为要在strObj查找的子字符串,startIndex是可选的,表示查找的开始位置(基于0的索引),如果startIndex省略,则从strObj末尾处查找,如果startIndex小于0,则从0开始,如果startIndex大于最大索引,则从最大索引处开始。该方法自右向左查找,返回subString在strObj中最后出现的位置,如果没有找到,返回-1。

以上就是我最近学习到的js中关于string的一些基本用法的总结,还有很多不足之处,并且一些常用但是我没用过的我也没写上,以后用到可以继续添加,也希望大家看到问题批评指正。

javascript中string的用法总结的更多相关文章

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

    正则表达式由来已久,查找替换功能非常强大,但模板难记复杂. JavaScript中String对象的match().replace()这2个方法都要使用正则表达式的模板.当模板内容与字符串不相匹配时, ...

  2. C#中string.format用法详解

    C#中string.format用法详解 本文实例总结了C#中string.format用法.分享给大家供大家参考.具体分析如下: String.Format 方法的几种定义: String.Form ...

  3. JavaScript中return的用法详解

    JavaScript中return的用法详解 最近,跟身边学前端的朋友了解,有很多人对函数中的this的用法和指向问题比较模糊,这里写一篇博客跟大家一起探讨一下this的用法和指向性问题. 1定义 t ...

  4. C#中string.Format 用法详解

    这篇文章主要介绍了C#中string.format用法,以实例形式较为详细的讲述了string.format格式化的各种用法,非常具有实用价值,需要的朋友可以参考下 本文实例总结了C#中string. ...

  5. JavaScript中this的用法 及 如何改变this的指向

    要懂得JavaScript中this的用法,首先需要知道,JavaScript中的作用域相关知识. var fun = function(){ var flag = 1; console.log(fl ...

  6. javascript中 try catch用法

    javascript中 try catch用法 投稿:hebedich 字体:[增加 减小] 类型:转载 时间:2015-08-16我要评论 JS try catch语句一般在什么情况下使用?是必须使 ...

  7. 从函数调用的角度,探讨JavaScript中this的用法

    js函数调用方式大概可分为:函数调用,构造器调用,call或apply,方法调用四种方式.下面结合一些基础概念和实测代码,从函数调用的角度,探讨JavaScript中this的用法. 1. new对函 ...

  8. JavaScript中this的用法详解

    JavaScript中this的用法详解 最近,跟身边学前端的朋友了解,有很多人对函数中的this的用法和指向问题比较模糊,这里写一篇博客跟大家一起探讨一下this的用法和指向性问题. 1定义 thi ...

  9. java成神之——java中string的用法

    java中String的用法 String基本用法 String分割 String拼接 String截取 String换行符和format格式化 String反转字符串和去除空白字符 String获取 ...

随机推荐

  1. vs05字节对齐问题又一不小心就弄去了我一个下午的时间

    由于一字节的对齐问题,我调一个库调了我基本一个下午..... 犯错其实并不可怕, 可怕的是你一犯再犯...... 这也算得上是难能可贵... /Zp (Struct Member Alignment) ...

  2. EventLoop(netty源码死磕4)

    精进篇:netty源码  死磕4-EventLoop的鬼斧神工 目录 1. EventLoop的鬼斧神工 2. 初识 EventLoop 3. Reactor模式回顾 3.1. Reactor模式的组 ...

  3. 【python】-- 面向对象引子、概念

    面向过程编程 1.编程范式 编程是 程序 员 用特定的语法+数据结构+算法组成的代码来告诉计算机如何执行任务的过程 , 一个程序是程序员为了得到一个任务结果而编写的一组指令的集合,正所谓条条大路通罗马 ...

  4. 我的Android进阶之旅------>Android实现用Android手机控制PC端的关机和重启的功能(三)Android客户端功能实现

    我的Android进阶之旅------>Android实现用Android手机控制PC端的关机和重启的功能(一)PC服务器端(地址:http://blog.csdn.net/ouyang_pen ...

  5. 如何判断移动终端访问还是PC访问?

    我们经常需要知道访问网站的设备是移动终端还是PAD还是PC,下面给出判断的java代码供参考.实现的原理就是获取HTTP消息头里User-Agent和x-wap-profile,User-下面是Use ...

  6. php添加或升级扩展模块步骤

    php添加或升级扩展模块步骤: 1).下载对应扩展的稳定版源码包2).进入到解压后的源码包执行: sudo /usr/local/php/bin/phpize //对应安装到哪个php版本 sudo ...

  7. 每天一个Linux命令(3)mkdir命令

        mkdir命令用来创建目录.    (1)用法:  用法: mkdir [选项]... 目录... (2)功能: 功能: 若指定目录不存在则创建目录 该命令创建由dirname命名的目录.如果 ...

  8. Data Structure Binary Tree: Construct Full Binary Tree from given preorder and postorder traversals

    http://www.geeksforgeeks.org/full-and-complete-binary-tree-from-given-preorder-and-postorder-travers ...

  9. python作用域和js作用域的比较

    1.python和js一样,作用域链在执行方法之前就已经创建了 # 下面的执行结果就是aa,原因是这点python和js一样,作用域链已经创建了,不会去改变 xo="aa" def ...

  10. 改进地图的vo类

    现在的地图只是各帧特征点的集合.创建地图:局部,全局.局部:只相机位置附近的特征点,用来和当前帧匹配求解相机位置的.全局:不定位,回环检测和地图表达.重点或麻烦:维护局部地图的规模.为了实时,保证地图 ...