通过 + 连接符拼接字符串:
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;