0

正規表現があり、すべての一致を関数の引数として使用できるかどうか疑問に思っています。たとえば、データセットがあるとしましょう

Hello heelo hhhheEEeloo eelloooo

そして正規表現

/[Hh]{1,}[Ee]{1,}[Ll]{1,}[Oo]{1,}/

どちらが一致しますか

Hello heelo hhhheEEeloo

たとえば、各一致を引数として受け取るJavaScript関数を取得するにはどうすればよいですか

function isHello(arg) {
    if (arg == 'Hello') { return 1 }
    else { return 0}
}
4

3 に答える 3

3

.replaceコールバックで使用する

"Hello heelo hhhheEEeloo eelloooo".replace(/[Hh]{1,}[Ee]{1,}[Ll]{1,}[Oo]{1,}/g,function(match){
    //Your function code here
    return match;
})

またはもっと些細な例:

var count=0;
"aaaaaaa".replace(/a/g,function(match){
    console.log("I matched another 'a'",count++);
    // just to not replace anything, technically this doesn't matter 
    //since it doesn't operate on the actual string
    return match; 
});

フィドル

于 2013-06-26T16:57:11.810 に答える
1
var string = "Hello heelo hhhheEEeloo eelloooo",
    regex = /[Hh]{1,}[Ee]{1,}[Ll]{1,}[Oo]{1,}/g,
    fn = function(arg){ 
        if (arg == 'Hello')
             return 1;
        return 0
    };
string.match(regex).forEach(fn);

g目的の一致を与えるために、一致する正規表現にフラグが追加されていることに注意してください。

于 2013-06-26T16:59:49.883 に答える