除非转义,否则匹配一封信

时间:2013-03-17 12:59:56

标签: javascript regex

我正在尝试匹配一个没有用反斜杠转义的字母(比方说a),但是我想这样做而不使用负向前瞻或负面的外观,这是我到目前为止所尝试的但是它不起作用

/([^\\][^a])*/.test('should be true a.'); // true
/([^\\][^a])*/.test('should be not true \\a.'); // true

但他们都回归真实。我做错了什么?

1 个答案:

答案 0 :(得分:2)

要测试'a'前面没有'\'的{​​{1}},您可以使用

/(^|[^\\])a/.test( 'should be true a.' );        // true
/(^|[^\\])a/.test( 'should be not true \\a.' );  // false

(^|[^\\])匹配字符串^的开头或非'\'的字符。

在正则表达式中,[^a]匹配 'a'的任何字符,而()*表示匹配括号 0中的内容或更多次 - 所以任何字符串都会测试为true,因为任何字符串都可以匹配模式零次。