xgqfrms™, xgqfrms® : xgqfrms's offical website of cnblogs! xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!

js RegExp test bug All In One

js RegExp test bug All In One

js regular expression

const regexExp = /(\u00a9|\u00ae|[\u2000-\u3300]|\ud83c[\ud000-\udfff]|\ud83d[\ud000-\udfff]|\ud83e[\ud000-\udfff])/gi;

regexExp.test('bug');
// false

regexExp.test('❤️');
// true ✅

regexExp.test('🧡');
// false

regexExp.test('👻');
// true

regexExp.test('xxx👩‍❤');
// true

regexExp.test('❤️');
// false ❌

solution

js regexp test bug

test 缓存 bug

// note that we're using the `g` flag on the

const regex = /test/g
console.log(regex.lastIndex);
// 0

// returns true
regex.test('test123')
console.log(regex.lastIndex);
// 4

// returns false 😭
regex.test('test123')
console.log(regex.lastIndex)
// 0

// returns true
regex.test('test123')
console.log(regex.lastIndex);
// 4


https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/test

match ✅

const regex = /test/g
'test123'.match(regex)
// ['test']
!!'test123'.match(regex)
//true


'txest123'.match(regex)
//null
!!'txest123'.match(regex);
//false

https://benjaminjohnson.me/regex-test-side-effects

refs

https://melvingeorge.me/blog/check-if-string-contain-emojis-javascript



©xgqfrms 2012-2020

www.cnblogs.com/xgqfrms 发布文章使用:只允许注册用户才可以访问!

原创文章,版权所有©️xgqfrms, 禁止转载 🈲️,侵权必究⚠️!


posted @ 2022-03-25 00:32  xgqfrms  阅读(62)  评论(1编辑  收藏  举报