2013-01-17 161 views
-1

我有一个可能有0个或更多嵌入字符串的短语,如下所示: “这是0lsdkfjl0MY 1lsdkfjl0SENTENCE”。 这些嵌入字符串的模式匹配表达式: (?:0 | 1)lsdkfjl(?:0 | 1 | 2 | 3 | 4)。我需要将所有字符转换成除小写以外的字符。我怎样才能做到这一点? 这是JavaScript。正则表达式来选择除了某些字符以外的所有东西

回答

0

您可以使用捕获组和替换功能:

str.replace(/[^dontmatch]+/g, function(match) { 
    return match.toLowerCase(); 
}); 

下面是一个例子:

> 'ADFGXYZ'.replace(/[^AD]+/g, function(match) { return match.toLowerCase(); }); 
"ADfgxyz" 
+0

这就是我想要做的,但我需要跳过字符串不一群人物。正如我所说,它有一个模式。所以我不能说str.replace(/ [^(?: 0 | 1)lsdkfjl(?:0 | 1 | 2 | 3 | 4)] +/g,...),我可以吗? – chibis

+0

@ user1988833:你为什么不选择完全相反的? '([^ 01](?:?*)[^ 0-4])'。 – Blender

+0

这也不起作用。这些不只是我想省略的数字。它是一个以数字开头并以数字结尾的模式,但是在该模式中使用的任何字符,但不匹配的顺序应该与 匹配,所以如果我有0lsdkfjl4 - 应该跳过,但只是lsdkfjl不应该 – chibis

相关问题