码迷,mamicode.com
首页 > Web开发 > 详细

0003.js字符串操作

时间:2016-10-10 01:13:39      阅读:199      评论:0      收藏:0      [点我收藏+]

标签:

通过 + 连接符拼接字符串:

var str1 = "hello";
str1 = str1 + " javaScript";
document.write(str1);

或者:

var str1 = "hello";
str1 += " javaScript";
document.write(str1);

输出:hello javaScript

要在字符串中添加换行符,需要使用转义字符"\n",但这种方法只能用在像警告、确认对话框之类的情况下。

如果将这段文本作为HTML内容呈现,就无效了,此时用"<br>"代替它

js concat()方法:

string.concat(string2, string3[, ..., stringN]);
var str2 = "hello".concat(" javaScript"," world");
document.write(str2);

 这种拼接的方式不如直接用加号拼接方便;

js 字符串长度length属性:

返回字符个数,而不是字节长度;

var str = "kitty猫";
document.write(str.length);

返回长度6

js substr(),用于返回一个从指定位置开始的指定长度的子字符串。

语法:stringObject.substr(start [, length ])

start   必需。所需的子字符串的起始位置。字符串中的第一个字符的索引为 0。
length 可选。在返回的子字符串中应包括的字符个数。

说明

如果start为负数,则start=str.length+start。start大于字符串最后一个字符串的索引将返回空字符串。

如果 length 为 0 或负数,将返回一个空字符串。

如果没有指定length参数或者length大于字符串长度,则子字符串将延续到stringObject的最后。

两参数为小数也是被允许的采用去小数部分操作,使返回结果不至于报错,但实际上没有意义,索引和长度不会存在小数的情况;

js substring(),substring 方法用于提取字符串中介于两个指定下标之间的字符

开始和结束的位置,从零开始的索引

参数     描述

start     必需。一个非负的整数,规定要提取的子串的第一个字符在 stringObject 中的位置。

stop     可选。一个非负的整数,比要提取的子串的最后一个字符在 stringObject 中的位置多 1。如果省略该参数,那么返回的子串会一直到字符串的结尾。

返回一个新的字符串,该字符串值包含 stringObject 的一个子字符串,其内容是从 start 处到 stop-1 处的所有字符,其长度为 stop 减 start。

substring 方法返回的子串包括 start 处的字符,但不包括 end 处的字符。
如果 start 与 end 相等,那么该方法返回的就是一个空串(即长度为 0 的字符串)。
如果 start 比 end 大,那么该方法在提取子串之前会先交换这两个参数。
如果 start 或 end 为负数,那么它将被替换为 0。(end为负数那么,替换成0,那么就是substr(0,startvalue))

两参数为小数也是被允许的采用去小数部分操作,使返回结果不至于报错,但实际上没有意义,索引不会存在小数的情况;

js slice()

string.slice(start, end) 返回从start位置开始到end-1位置的的子字符串;

start大于字符串长度返回空字符串;

end大于字符串长度返回从start到字符串结尾的子串;

start和end都可以为负数,意为从字符串最后倒着数,最后一个字符为-1;

start和end为负数都应先从字符串最后数起确定自己的索引;

如果end的索引小于start的索引则返回空字符串;

两参数为小数也是被允许的采用去小数部分操作,使返回结果不至于报错,但实际上没有意义,索引不会存在小数的情况;

js toLowerCase()和toUpperCase()

toLowerCase()将字符串转为全小写;

toUpperCase()将字符串转为全大写;

不影响字符串本身;

var str = "ShanGHai";
document.write(str.toLowerCase() + "<br>");
document.write(str.toUpperCase() + "<br>");
document.write(str);

shanghai
SHANGHAI
ShanGHai

js indexOf()

返回某个指定的字符串在字符串中首次出现的位置(从左向右)。包含子串返回下标,不包含返回-1;

js lastIndexOf()

返回从右向左出现某个字符或字符串的首个字符索引值;

js charAt(index) 返回某个索引处的字符;

js charCodeAt(index) 返回某个索引处字符的unicode值;

js String.fromCharCode(index1,index2...indexn)

var str = String.fromCharCode(72, 101, 108, 108, 111); 
document.write(str);

输出Hello

上面的length属性可以确定字符串的字符长度;

当js校验时,需要限定字符长度,必须根据字节来统计;

匹配中文字符的正则表达式: [\u4e00-\u9fa5]

匹配双字节字符(包括汉字在内):[^\x0000-\x00ff]

下面的字节长度统计来自于:星期八的Blog
内容正确性未测试;

str.charCodeAt(i)>255 的字符占两个字符;

 1 var lenFor = function(str){
 2   var byteLen=0,len=str.length;
 3   if(str){
 4     for(var i=0; i<len; i++){
 5       if(str.charCodeAt(i)>255){
 6         byteLen += 2;
 7       }
 8       else{
 9         byteLen++;
10       }
11     }
12     return byteLen;
13   }
14   else{
15     return 0;
16   }
17 }

正则表达式检测字符串的字节长度:

var lenReg = function(str){
  return str.replace(/[^x00-xFF]/g,**).length;
}

用正则表达式检测所用的时间竟然是for循环的两倍!!!!

这个好使---
function getBytesLength(str) {
// 在GBK编码里,除了ASCII字符,其它都占两个字符宽
return str.replace(/[^\x00-\xff]/g, ‘xx‘).length;

0003.js字符串操作

标签:

原文地址:http://www.cnblogs.com/wolongjv/p/5944239.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!