js如何利用正则表达式截取指定长度字符串

JavaScript025

js如何利用正则表达式截取指定长度字符串,第1张

Javascript 字符串上的方法(性能好)

var str = "It's a long string."

var length = 10

console.log( str.slice( 0, length ) ) // "It's a lon"

用正则(match)

var str = "It's a long string."

var length = 10

var regExp = new RegExp( "^(.{0," + length + "}).*$" ) // /^(.{0,10}).*$/

console.log( str.match( regExp )[ 1 ] ) // "It's a lon"

用正则(replace)

var str = "It's a long string."

var length = 10

var regExp = new RegExp( "^(.{0," + length + "}).*$" ) // /^(.{0,10}).*$/

console.log( str.replace( regExp, "$1" ) ) // "It's a lon"

/**

*x00-xff是指所有ASCII,即单字符,/[^\x00-xff]/g指所有非单字符,包含全角字符,汉字

\u4e00-\u9fa5匹配所有的汉字,只匹配汉字,不包含全角字符,全角字符也占两个字节

/

var strDo = {

getByteLength:function(str){

if(typeof str !== 'string') return 0

return str.replace(/[^\x00-xff]/g,' ').length

},

//检查值是否字母,数字,汉字,且字节长度是大于6小于32

checkVal:function(val){

var reg = /^[a-zA-Z\d\u4e00-\u9fa5]+$/

if(reg.test(val)){

var len = this.getByteLength(val)

return len >6 &&len <32

}else{

return false

}

},

//截取等长字符串

equalLengthStr:function(str,len){

if(typeof str !== 'string') return ''

var len = len || 99999,

tempStr = '',

n = 0

可以用substring或者substr截取字符串。详解:substring 方法用于提取字符串中介于两个指定下标之间的字符。语法:stringObject.substring(start,end)start:必需。一个非负的整数,规定要提取的子串的第一个字符在 stringObject 中的位置。stop:可选。一个非负的整数,比要提取的子串的最后一个字符在 stringObject 中的位置多 1。如果省略该参数,那么返回的子串会一直到字符串的结尾。 返回值:一个新的字符串,该字符串值包含 stringObject 的一个子字符串,其内容是从 start 处到 stop-1 处的所有字符,其长度为 stop 减 start。注意:substring 方法返回的子串包括 start 处的字符,但不包括 end 处的字符。如果 start 与 end 相等,那么该方法返回的就是一个空串(即长度为 0 的字符串)。如果 start 比 end 大,那么该方法在提取子串之前会先交换这两个参数。如果 start 或 end 为负数,那么它将被替换为 0。substr 方法用于返回一个从指定位置开始的指定长度的子字符串。语法:stringObject.substr(start ,length)start:必需。所需的子字符串的起始位置。字符串中的第一个字符的索引为 0。length 可选。在返回的子字符串中应包括的字符个数。注意:如果start为负数,则start=str.length+start。如果 length 为 0 或负数,将返回一个空字符串。如果没有指定该参数,则子字符串将延续到stringObject的最后。