JS截取字符串常用方法
在js中字符截取函数有常用的三个slice()、substring()、substr()了,下面我来给大家介绍slice()、substri

1、js截取两个字符串之间的内容:
js
var str = "aaabbbcccdddeeefff";
str = str.match(/aaa(\S*)fff/)[1];
alert(str);//结果bbbcccdddeee
2、js截取某个字符串前面的内容:
js
var str = "aaabbbcccdddeeefff";
tr = str.match(/(\S*)fff/)[1];
alert(str);//结果aaabbbcccddd
3、js截取某个字符串后面的内容:
js
var str = "aaabbbcccdddeeefff";
str = str.match(/aaa(\S*)/)[1];
alert(str);//结果bbbcccdddeeefff
4、函数:split()
功能:使用一个指定的分隔符把一个字符串分割存储到数组
js
str=”jpg|bmp|gif|ico|png”;
arr=theString.split(”|”);
//arr是一个包含字符值”jpg”、”bmp”、”gif”、”ico”和”png”的数组
5、函数:Join()
功能:使用您选择的分隔符将一个数组合并为一个字符串
js
var delimitedString=myArray.join(delimiter);
var myList=new Array(”jpg”,”bmp”,”gif”,”ico”,”png”);
var portableList=myList.join(”|”);
//结果是jpg|bmp|gif|ico|png
6、函数:indexOf()
功能:返回字符串中匹配子串的第一个字符的下标
js
var myString=”JavaScript”;
var w=myString.indexOf(”v”); //w will be 2
var x=myString.indexOf(”S”); //x will be 4
var y=myString.indexOf(”Script”); //y will also be 4
var z=myString.indexOf(”key”); //z will be -1
7、函数:substring()
-
功能:字符串截取,用于提取字符串中介于两个指定下标之间的字符,比如想从"MinidxSearchEngine”中得到"Minidx”就要用到substring(0,6)
-
语法 :stringObject.substring(start,stop)
-
参数 描述:start 必需。一个非负的整数,规定要提取的子串的第一个字符在 stringObject中的位置。 stop可选。一个非负的整数,比要提取的子串的最后一个字符在stringObject中的位置多 1。如果省略该参数,那么返回的子串会一直到字符串的结尾。
-
返回值: 一个新的字符串,该字符串值包含 stringObject的一个子字符串,其内容是从start处到 stop-1 处的所有字符,其长度为 stop减 start。
-
说明 :substring 方法返回的子串包括 start处的字符,但不包括 end 处的字符。 如果start与 end 相等,那么该方法返回的就是一个空串(即长度为 0 的字符串)。 如果 start比 end大,那么该方法在提取子串之前会先交换这两个参数。 如果 start或end为负数,那么它将被替换为 0。
8、函数:substr()
-
定义和用法:substr方法用于返回一个从指定位置开始的指定长度的子字符串。
-
语法:stringObject.substr(start [, length ])
-
参数 描述:start 必需。所需的子字符串的起始位置。字符串中的第一个字符的索引为 0。 length可选。在返回的子字符串中应包括的字符个数。
-
说明: 如果 length 为 0 或负数,将返回一个空字符串。 如果没有指定该参数,则子字符串将延续到stringObject的最后。
js
var str = "0123456789";
alert(str.substring(0));------------"0123456789"
alert(str.substring(5));------------"56789"
alert(str.substring(10));-----------""
alert(str.substring(12));-----------""
alert(str.substring(-5));-----------"0123456789"
alert(str.substring(-10));----------"0123456789"
alert(str.substring(-12));----------"0123456789"
alert(str.substring(0,5));----------"01234"
alert(str.substring(0,10));---------"0123456789"
alert(str.substring(0,12));---------"0123456789"
alert(str.substring(2,0));----------"01"
alert(str.substring(2,2));----------""
alert(str.substring(2,5));----------"234"
alert(str.substring(2,12));---------"23456789"
alert(str.substring(2,-2));---------"01"
alert(str.substring(-1,5));---------"01234"
alert(str.substring(-1,-5));--------""
alert(str.substr(0));---------------"0123456789"
alert(str.substr(5));---------------"56789"
alert(str.substr(10));--------------""
alert(str.substr(12));--------------""
alert(str.substr(-5));--------------"0123456789"
alert(str.substr(-10));-------------"0123456789"
alert(str.substr(-12));-------------"0123456789"
alert(str.substr(0,5));-------------"01234"
alert(str.substr(0,10));------------"0123456789"
alert(str.substr(0,12));------------"0123456789"
alert(str.substr(2,0));-------------""
alert(str.substr(2,2));-------------"23"
alert(str.substr(2,5));-------------"23456"
alert(str.substr(2,12));------------"23456789"
alert(str.substr(2,-2));------------""
alert(str.substr(-1,5));------------"01234"
alert(str.substr(-1,-5));-----------""
var t=window.location.href.split("/").length-1;
//将当前页面的URL以“/”分割,并获取所得数组的长度减1的数值(刚好是数组最后一个元素的索引值)
var str=window.location.href.split("/")[t].substr(0,4);
//截取数组最后一个元素中第一位到第五位的字符串
9、星号 * 处理手机号
js
function noPassByMobile(str){
if(null != str && str != undefined){
var pat=/(\d{3})\d*(\d{4})/;
return str.replace(pat,'$1****$2');
} else {
return "";
}
}
noPassByMobile('13671806891') // "136****6891"
10、星号 * 处理字符串
js
function noPassByName(str){
if(null != str && str != undefined){
if(str.length <= 3){
return "*" + str.substring(1,str.length);
} else if(str.length > 3 && str.length <= 6){
return "**" + str.substring(2,str.length);
} else if(str.length > 6){
return str.substring(0,2) + "****" + str.substring(6,str.length)
}
} else {
return "";
}
}
noPassByName('vipbic') // **pbic
noPassByName('www.vipbic.com') // ww****pbic.com
这里再为大家提供2款非常方便的正则表达式工具供大家参考使用:
JavaScript正则表达式在线测试工具:
http://tools.jb51.net/regex/javascript
正则表达式在线生成工具:
http://tools.jb51.net/regex/create_reg