0
点赞
收藏
分享

微信扫一扫

Js 正则表达式的一些使用示例

match

"12 34".match(/\d+/g)
//结果
["12", "34"]

search

"test12".search( /\d+/ )
//结果
4

split

'Hello \n world'.split( /\s+/ )
//结果
["Hello", "world"]

'12-34-56'.split('-', 2)
//结果
["12", "34"]

match

var str = '<span> <p>'
var re = /<(.*?)>/g

while( res = re.exec(str) ) {
console.log('match:' + res[0] + ' tag:' + res[1]);
console.log(re.lastIndex);
}
//结果
match:<span> tag:span VM998:7
6
match:<p> tag:p VM998:7
10
undefined

test

/^\d+$/.test('123')
//结果
true

replace

replace特殊引用

  • $n n从1开始,指向匹配的第几个字符串
  • $& 指向匹配的字符串
  • $` 指向匹配字符串的左侧
  • $’ 指向匹配字符串的右侧
    示例:
"a1b".replace(/\d/,"左侧$` 匹配的文本$& 右侧$'");

//结果:

"a左侧a 匹配的文本1 右侧bb"

处理分组内容

"a1,2,3,4b".replace(/a\d,(\d),(\d),\db/,function(){
var args=arguments;
console.log(args);
var result=[];
for(var i=1;i<=args.length-3;i++){
result.push(args[i]);
}
return result.join(',');
});

//输出:

["a1,2,3,4b", "2", "3", 0, "a1,2,3,4b"]
"2,3"

首字母改成大写

var name = 'aaa bbb ccc'; 
var upperName=name.replace(/\b\w+\b/g, function(word){
return word.substring(0,1).toUpperCase()+word.substring(1);}
);
//结果
Abb Bbb Ccc

reduce实现的分组命名

function namedRegexMatch(text, regex, matchNames) {
var matches = regex.exec(text);
return matches.reduce(function (result, match, index) {
if (index > 0)
result[matchNames[index - 1]] = match;
return result;
}, {});
}

//使用示例
var myString = "Hello Alex, I am John";

var namedMatches = namedRegexMatch(
myString,
/Hello ([a-z]+), I am ([a-z]+)/i,
["firstPersonName", "secondPersonName"]
);

console.log(JSON.stringify(namedMatches));


举报

相关推荐

0 条评论