バックスラッシュでエスケープされていない文字(たとえば)を一致させようとしa
ていますが、負の先読みまたは負の後読みを使用せずに一致させたいのですが、これはこれまでに試したものですが、機能しません
/([^\\][^a])*/.test('should be true a.'); // true
/([^\\][^a])*/.test('should be not true \\a.'); // true
しかし、どちらもtrueを返します。私は何が間違っているのですか?
バックスラッシュでエスケープされていない文字(たとえば)を一致させようとしa
ていますが、負の先読みまたは負の後読みを使用せずに一致させたいのですが、これはこれまでに試したものですが、機能しません
/([^\\][^a])*/.test('should be true a.'); // true
/([^\\][^a])*/.test('should be not true \\a.'); // true
しかし、どちらもtrueを返します。私は何が間違っているのですか?
'a'
が前に付いていないものをテストするには、'\'
次を使用できます
/(^|[^\\])a/.test( 'should be true a.' ); // true
/(^|[^\\])a/.test( 'should be not true \\a.' ); // false
文字列の先頭またはではない文字の(^|[^\\])
いずれかに一致します。^
'\'
正規表現では、ではない[^a]
すべての文字に一致します。これは、角かっこで囲まれた文字に0回以上一致することを意味します。したがって、任意の文字列がパターンに0回一致する可能性があるため、すべての文字列が真にテストされます。 'a'
()*