You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@couchdb.apache.org by "Brian Candler (JIRA)" <ji...@apache.org> on 2009/11/21 08:39:41 UTC

[jira] Commented: (COUCHDB-573) Regex capture problem in emit functions

    [ https://issues.apache.org/jira/browse/COUCHDB-573?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12780927#action_12780927 ] 

Brian Candler commented on COUCHDB-573:
---------------------------------------

There is no $0 in Javascript, but $& gives the whole substring which matches the regexp. You can try it out using 'js' at the command line (under Ubuntu: install the 'spidermonkey-bin' package)

js> 'TestTwo'.replace(/[A-Z]/g, ' $&')
 Test Two

Incidentally, Ruby is the same. $0 is the name of the running script and is nothing to do with regexp captures.

~$ irb --simple-prompt
>> $0
=> "irb"
>> "TestTwo".gsub!(/[A-Z]/) { " #{$&}" }
=> " Test Two"
>> 


> Regex capture problem in emit functions
> ---------------------------------------
>
>                 Key: COUCHDB-573
>                 URL: https://issues.apache.org/jira/browse/COUCHDB-573
>             Project: CouchDB
>          Issue Type: Bug
>    Affects Versions: 0.11
>         Environment: Linux
>            Reporter: Eric Desgranges
>            Priority: Trivial
>             Fix For: 0.11
>
>
> The capture variables $0, $1, $2... don't get instantiated in regex expressions placed in emit functions.
> Example:
> function(doc) { if (doc.EntityType != null) { emit(doc.ID.Value + '.' + doc.EntityType, { Type: doc.EntityType.replace(/[A-Z]/g, ' $0'), ....
> EntityType: TestTwo 
> Returns:
> Type: " $0est $0wo" 
> Instead of:
> Type: " Test Two" 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.