RegExp.$1-$9 - JavaScript 编辑
The legacy RegExp $1, $2, $3, $4, $5, $6, $7, $8, $9 properties are static and read-only properties of regular expressions that contain parenthesized substring matches.
Description
The $1, ..., $9 properties are static, they are not a property of an individual regular expression object. Instead, you always use them as RegExp.$1
, ..., RegExp.$9
.
The values of these properties are read-only and modified whenever successful matches are made.
The number of possible parenthesized substrings is unlimited, but the RegExp
object can only hold the first nine. You can access all parenthesized substrings through the returned array's indexes.
These properties can be used in the replacement text for the String.replace
method. When used this way, do not prepend them with RegExp
. The example below illustrates this. When parentheses are not included in the regular expression, the script interprets $n
's literally (where n
is a positive integer).
Examples
Using $n with String.replace
The following script uses the replace()
method of the String
instance to match a name in the format first last and output it in the format last, first. In the replacement text, the script uses $1
and $2
to indicate the results of the corresponding matching parentheses in the regular expression pattern.
var re = /(\w+)\s(\w+)/;
var str = 'John Smith';
str.replace(re, '$2, $1'); // "Smith, John"
RegExp.$1; // "John"
RegExp.$2; // "Smith"
Using $n with RegExp.test
The following script uses the test()
method of the RegExp
instance to grab a number in a generic string.
var str = 'Test 24';
var number = /(\d+)/.test(str) ? RegExp.$1 : '0';
number; // "24"
Please note that any operation involving the usage of other regular expressions between a re.test(str)
call and the RegExp.$n
property, might have side effects, so that accessing these special properties should be done instantly, otherwise the result might be unexpected.
Specifications
Specification |
---|
Legacy RegExp features in JavaScript |
Browser compatibility
BCD tables only load in the browser
See also
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论