2016-07-07 31 views
-1

海蘭傢伙, 我在JavaScript中的JavaScript RegExp類中提取信息

var regexp = new RegExp('[a-z]{2}'); 

這個正則表達式是有辦法來提取這一最小長度是多少?在這種情況下是「2」,但我可以任意數量。

Tks。

+1

JS提供沒有直接的方法來知道一個相匹配的任意的正則表達式的字符串的最小長度。但我想可能會使用一些正則表達式解析器的JS實現,並稍微修改它來計算它。 – Oriol

回答

0

我認爲,你不必爲字符串字面直接訪問,在這種情況下,你可以使用正則表達式的source屬性來獲取字符串源

var regexp = new RegExp('[a-z]{2}'); 
 
var num = regexp.source.match(/\{(\d+)\}/)[1]; 
 

 
snippet.log('Number: ' + num)
<!-- Provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 --> 
 
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>


但是,如果您有權訪問字符串文字,那麼您可以直接使用該字符串文字

var string = '[a-z]{2}'; 
 
var regexp = new RegExp(string); 
 
var num = string.match(/\{(\d+)\}/)[1]; 
 

 
snippet.log('Number: ' + num)
<!-- Provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 --> 
 
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>

+0

哇!真棒和簡單。是的,我無權訪問字符串文字。 它是否適用於任何正則表達式? –

+0

您無法使用上述方法從'[a-z] \ d'確定最小長度。 –