不匹配字符串中的模式

时间:2016-09-07 09:47:22

标签: javascript regex

我有以下字符串,

var str = "/\S\w\djoseph/";

我只是想获取不符合以下模式的字符,

/\\(\w|\d)/

我的意思是我只想从上面的字符串中提取 joseph 。我试过以下但我的正则表达式没有按预期工作。

var str = "/\S\w\djoseph/";
var mat = /[^\\(\w|\d)]/g.exec(str);

console.log(mat); //["/"]

任何人都可以帮我从我的目标字符串中获取所需的字符串吗?

2 个答案:

答案 0 :(得分:1)

您可以在.replace中使用此正则表达式进行回调:

/\S\whello\s\d/.source.replace(/(\\[wsd])|(.)/g, function($0, $1, $2){
    return ($1 == undefined ? "" : $1) + ($2 != undefined ? $2.toUpperCase() : ""); 
})

//=> "\S\wHELLO\s\d"

这将大写任何非\w\s\d的内容。

答案 1 :(得分:0)

如何用空字符串替换匹配\.的所有内容?

var a = '\\a\\btest\\c\\d'; var result = a.replace(/\\./g, ''); console.log(result);