diff --git a/src/lib/isSlug.js b/src/lib/isSlug.js index 28b872a92..51e595ba3 100644 --- a/src/lib/isSlug.js +++ b/src/lib/isSlug.js @@ -1,6 +1,6 @@ import assertString from './util/assertString'; -let charsetRegex = /^[^\s-_](?!.*?[-_]{2,})[a-z0-9-\\][^\s]*[^-_\s]$/; +const charsetRegex = /^[a-z0-9](?!.*[-_]{2,})(?:[a-z0-9_-]*[a-z0-9])?$/; export default function isSlug(str) { assertString(str); diff --git a/test/validators.test.js b/test/validators.test.js index 1fa629092..76d515ac5 100644 --- a/test/validators.test.js +++ b/test/validators.test.js @@ -14187,13 +14187,15 @@ describe('Validators', () => { test({ validator: 'isSlug', valid: [ + 'f', + 'fo', 'foo', 'foo-bar', 'foo_bar', 'foo-bar-foo', 'foo-bar_foo', - 'foo-bar_foo*75-b4r-**_foo', - 'foo-bar_foo*75-b4r-**_foo-&&', + 'foo-75-b4r-foo', + 'a1-b2_c3', ], invalid: [ 'not-----------slug', @@ -14203,6 +14205,12 @@ describe('Validators', () => { '_not-slug', 'not-slug_', 'not slug', + 'i.am.not.a.slug', + 'slug.is.cool', + 'foo-bar_foo*75-b4r-**_foo', + 'foo-bar_foo*75-b4r-**_foo-&&', + 'Foo-Bar', + 'a:b', ], }); });