2011-08-11 38 views
7

Có ai biết cách dịch cụm từ POSIX regexp (?<!X)A trong JS không?JS regexp (? <! X) A

Chỉ tìm A nếu không đứng trước X.

+1

Bạn có thể thấy thú vị này: http://blog.stevenlevithan.com/archives/ mimic-lookbehind-javascript. – pimvdb

+0

Tôi không nghĩ rằng các ngoại hình tiêu cực nằm trong POSIX, các giải pháp không được hỗ trợ trong BRE cũng như ERE. ;-) – Qtax

Trả lời

3

Câu trả lời ngắn gọn: bạn không thể.

JavaScript RegExp Object không hỗ trợ giao diện tiêu cực.

+0

@dotweb, -1, không, và câu trả lời của bạn không chứng minh khác. – Qtax

5

Đơn giản chỉ cần kiểm tra cho một trong hai đầu (ergo không có X) hoặc rằng có một nhân vật phi-X.

(^|[^X])A 

Trong hơn một ký tự, bạn có thể kiểm tra A và sau đó kiểm tra các văn bản phù hợp cho X sau đó là A, và loại bỏ trận đấu nếu nó phù hợp với mô hình thứ hai.

+0

+1 Điều này sẽ hoạt động giống nhau trừ khi công cụ sửa đổi chung bật. – Paulpro

+3

Điều này sẽ ** chỉ ** hoạt động nếu X là một ký tự đơn. –

0

Hãy thử điều này:

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

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

nếu bạn cần một phần sau khi "a", hãy thử:

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

Điều này không giải quyết được vấn đề gì cả ... –

Các vấn đề liên quan