js regexp 有沒有能在開頭使用的 (?!xxx)ooo 語法

有沒有能在開頭使用的 /(?!xxx)ooo/ 語法?

讓類似以下概念的結果等於 false

console.log(/(?![一])二三/.test('一二三'));
console.log(/(?=[^一])二三/.test('一二三'));

但不包含用以下這個方法

console.log(/(?:[^一])二三/.test('一二三'));

阅读 1.8k
1 个回答

node.js 10 支援 可以解決這個困擾

可以用 regexp-support 來知道自己的環境支不支援這各功能

lookBehindPositive

  • (?<=\$)foo
const RE_DOLLAR_PREFIX = /(?<=\\$)foo/g;
'$foo %foo foo'.replace(RE_DOLLAR_PREFIX, 'bar'); // => '$bar %foo foo'

lookBehindNegative

  • (?<!\$)foo
const RE_NO_DOLLAR_PREFIX = /(?<!\\$)foo/g;
'$foo %foo foo'.replace(RE_NO_DOLLAR_PREFIX, 'bar'); // => '$foo %bar bar'
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题