Include 'indices' property on OnigRegExp result with capture group indices

This commit is contained in:
Corey Johnson & Nathan Sobo
2012-07-30 18:21:57 -06:00
parent 7067c35dc0
commit 757258dd98
2 changed files with 6 additions and 0 deletions

View File

@@ -20,11 +20,16 @@ public:
if ([result count] == 0) return CefV8Value::CreateNull();
CefRefPtr<CefV8Value> resultArray = CefV8Value::CreateArray();
CefRefPtr<CefV8Value> indicesArray = CefV8Value::CreateArray();
for (int i = 0; i < [result count]; i++) {
resultArray->SetValue(i, CefV8Value::CreateString([[result stringAt:i] UTF8String]));
indicesArray->SetValue(i, CefV8Value::CreateInt([result locationAt:i]));
}
resultArray->SetValue("index", CefV8Value::CreateInt([result locationAt:0]), V8_PROPERTY_ATTRIBUTE_NONE);
resultArray->SetValue("indices", indicesArray, V8_PROPERTY_ATTRIBUTE_NONE);
return resultArray;
}

View File

@@ -5,6 +5,7 @@ describe "OnigRegExp", ->
result = regex.search("----a123----")
expect(result).toEqual ["a123", "123"]
expect(result.index).toBe 4
expect(result.indices).toEqual [4, 5]
it "returns null if it does not match", ->
regex = new OnigRegExp("\\w(\\d+)")