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

JavaScript029

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"

错了好几个地方啊,第一:正则不是全局的,第二:返回的数组中,第一组(下标为 0 的)为整个正则匹配的结果,第三:js 的正则在匹配成功后就返回,后面的要再次调用!

var str = 'ssssss w11112131 sssss  w22222 asssssssss w33333 sssssssss'

var p = /w\d*/g

var s = [], m

while(m = p.exec(str)){

s.push(m[0])

}

alert("===" + s[0] + "===" + s[1] + "===" + s[2] + "===")

你好 如果是 后面的六位数字是固定不变的 也就是说 最后六位一定是 数字 并且 一定是6位 那么 解决方案如下

比如 var str = "兴安盟152200" 可以采用 var str1=str.substring(str.length-6) 这样来获取六位数字

想取到前面的 还提供一种方式 正则表达式 当然上面也可以用正则 匹配中文替换就好

/\d{6}/ 这个代表六位数字

var str2 = str.replace("/\d{6}/","") 这样来取

希望能帮到你 谢谢