2011-08-11 48 views
7

有沒有人知道如何在JS中翻譯POSIX regexp (?<!X)AJS正則表達式(?<!X)A

找到一個只有當沒有X.之前

+1

您可能會發現這個有趣的:http://blog.stevenlevithan.com/archives/模仿,回顧後的JavaScript。 – pimvdb

+0

我不認爲在POSIX中使用負向lookbehinds,在BRE和ERE中不支持lookarounds。 ;-) – Qtax

回答

3

簡短的回答:你不能。

JavaScript的RegExp Object不支持負向倒序。

+0

@dotweb,-1,它不,你的回答沒有證明。 – Qtax

5

只需檢查任一開始(測功沒有X)或有一個非-X字符。

(^|[^X])A 

一個以上的字符,你可以檢查A,然後再檢查X後跟一個匹配的文本,並放棄了比賽,如果它匹配第二個模式。

+0

+1除非全局修飾符打開,否則這將表現相同。 – Paulpro

+3

如果X是單個字符,這將**僅工作。 –

0

試試這個:

var str = "ab"; 
console.log(/a(?!x)/i.exec(str)); //a 

var str = "ax"; 
console.log(/a(?!x)/i.exec(str)); //null 

,如果你以後 「」 需要的部分,請嘗試:

/a(?!x).*/i 
+0

這並不能解決問題...... –