- From: Garrett Smith <dhtmlkitchen@gmail.com>
- Date: Thu, 5 Jul 2012 07:34:27 +0000
- To: Lachlan Hunt <lachlan.hunt@lachy.id.au>
- Cc: public-script-coord@w3.org
On 7/4/12, Lachlan Hunt <lachlan.hunt@lachy.id.au> wrote: > Hi, > WebIDL currently doesn't support RegExp values. However, we are > working on a feature for Opera's extensions where the ability to set a > value of a dictionary property to a regular expression would be useful. > > I believe most other built-in ECMAScript objects can be represented in > WebIDL. RegExp seems to be the only built-in ES5 object that can't. > > Our use case is for a dictionary that looks something like this: > > dictionary Properties { > (DOMString or RegExp) pattern > ... > } > > When it's the value is set to a DOMString, the match is a simple keyword > match. When it's a regular expression, it can handle more complicated > pattern matching. > > Possible solutions we could use given the current state of the spec are > to either: > > 1. Use (DOMString or object) and then handle evaluating it as a > regular expression in prose. > > 2. Define the pattern as a DOMString only, which when set to an ES > RegExp value, will stringify as "/.../" and can then be parsed > again. This would require carfully differentiating between strings > intended for keyword matches and strings intended to be regular > expressions. > String.prototype.search does it the other way around. http://ecma-international.org/ecma-262/5.1/#sec-15.5.4.12 | If Type(regexp) is Object and the value of the [[Class]] internal | property of regexp is "RegExp", then let rx be regexp; | | Else, let rx be a new RegExp object created as if by the expression | new RegExp(regexp) where RegExp is the standard built-in | constructor with that name. The RegExp constructor will call ToString on the pattern arg passed. Not sure if this matters at all... -- Garrett Twitter: @xkit personx.tumblr.com
Received on Thursday, 5 July 2012 07:34:58 UTC