js 怎么获得 与正则表达式 匹配的 字符串

JavaScript08

js 怎么获得 与正则表达式 匹配的 字符串,第1张

实现的效果:在字符串中abcdefgname='test'sddfhskshjsfsjdfps中获取name的值test 实现的机制:通过replace的回调函数获取。

可以通过下面的代码获取匹配部分

var str = "abcdefgname='test'sddfhskshjsfsjdfps"

var reg = /name='((\w|-|\s)+)/ig

str.replace(reg, function() { console.log(arguments.length)//5 console.log(arguments[1])//test })

字符串 stringObject 的 replace() 方法执行的是查找并替换的操作。它将在 stringObject 中查找与 regexp 相匹配的子字符串,然后用 replacement 来替换这些子串。如果 regexp 具有全局标志 g,那么 replace() 方法将替换所有匹配的子串。否则,它只替换第一个匹配子串。

/**

*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

//'/ig'不区分大小写和全局搜索

var str = 'a我要取到所有a字符',

    result = str.match(/a/ig)

console.log(result)    //返回一个数组["a","a"]