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, 禁止转载 ️,侵权必究⚠️!