4.0.5 • Published 3 years ago

semver-regex v4.0.5

Weekly downloads
4,534,981
License
MIT
Repository
github
Last release
3 years ago

semver-regex

Regular expression for matching semver versions

Install

npm install semver-regex

Usage

import semverRegex from 'semver-regex';

semverRegex().test('v1.0.0');
//=> true

semverRegex().test('1.2.3-alpha.10.beta.0+build.unicorn.rainbow');
//=> true

semverRegex().exec('unicorn 1.0.0 rainbow')[0];
//=> '1.0.0'

'unicorn 1.0.0 and rainbow 2.1.3'.match(semverRegex());
//=> ['1.0.0', '2.1.3']

Important

If you run the regex against untrusted user input, it's recommended to truncate the string to a sensible length (for example, 50). And if you use this in a server context, you should also give it a timeout.

I do not consider ReDoS a valid vulnerability for this package. It's simply not possible to make it fully ReDoS safe. It's up to the user to set a timeout for the regex if they accept untrusted user input. However, I'm happy to accept pull requests to improve the regex.

Related

  • find-versions - Find semver versions in a string
  • latest-semver - Get the latest stable semver version from an array of versions
  • to-semver - Get an array of valid, sorted, and cleaned semver versions from an array of strings
  • semver-diff - Get the diff type of two semver versions: 0.0.1 0.0.2patch
  • semver-truncate - Truncate a semver version: 1.2.31.2.0
find-versionsarchetype-libraryreact-native-bluetooth2killi8n-react-native-fast-imageairscanairscan-examplebb-chatreact-native-esc-pos-sahaab@borisovart/atol-kkt-moduledeneme323112@ntt_app/react-native-custom-notificationtranslectra@mink-opn/build-tokensunblock-block-save-variables@infinitebrahmanuniverse/nolb-semvopea-bootstraap@everything-registry/sub-chunk-2731@rabailriaz/hisaab-web-portaltailwind-vector-effectsync-pom-version-to-packageweb-elements-iconsvue-native-cliwechselsportscale-wifi-connectsvavatarthomaschaaf-serverlessvision-camera-plugin-scan-facesvalidate-commit-msg-regexpvalidate-commit-msg-smartvalidate-commit-msg-yqbvalidate-commit-msg@cryptocode99/token-lists@corelmax/react-native-my2c2p-sdk@deg-skeletor/orko@pradeepgudipati/kovaad-chat-ui-kit-stylescauseway-concrete-stylesitchy-electronjeuxuijspm-inspectorjspm-p4jnf-accesscontrol-rnttllaoitdev-core-pluginsgomantic_releasedfeuk-frontenddfeuk-frontend-manualweb-yii2spigot-ui-inventorysvn-releasestart-starwars-libstnenopmoc-iutypeorm-polymorphic-clonetwine-libtwine-library@apardellass/react-native-audio-stream@amuslija/serverless@arielapaula/components@arielapaula/test@backbase/generator-project-statics@barusu-react/template-react-package@barusu/template-ts-package@basis-theory/eslint-config@blazinaj/app-kit@career0.1/my-first-career0.1@career0.1/my-first-career0.2@burst/cli@charliec3/gh-actions-example@charliec3/gh-actions-example-docs@charliec3/gh-actions-example-docs2@clerk/upgrade@datlas/conventional-dingtalkyarnbumpyt-playlist-proyoutube-playlist-playervue-v3-yandex-metrikaverify-node-versionvertag@felipesimmi/react-native-datalogic-module@duoke/git-verify@hbglobal/react-native-actions-shortcuts@hedgehogcomputing/core@geeky-apo/react-native-advanced-clipboard@gpicron/ssb-subjective-group@eliteswap/token-lists@gkatsev/conventional-github-releaser@innodata/vue-v3-ya-metrika@inti-ar/evm-chains@micro-app/shared-utils@mia-platform/cdn-publish@ernesto_tech/expo-gl-image-filters@fabwcie/ckeditor5-preview@faizanhaider/iconsax@mobiletoll/serverless@maujzs/branch-release@mallzee/serverless@kalkanisys/vue-select@journeyapps/serverless@jsmaestro/commit-validate@jellywelly/iterare@hemith/react-native-tnk@judemanutd/nextjs-lambda
4.0.5

3 years ago

4.0.4

3 years ago

3.1.4

3 years ago

4.0.3

3 years ago

4.0.2

4 years ago

3.1.3

4 years ago

4.0.1

4 years ago

4.0.0

4 years ago

3.1.2

4 years ago

3.1.1

5 years ago

3.1.0

6 years ago

3.0.0

6 years ago

2.0.0

7 years ago

1.0.0

11 years ago

0.1.1

11 years ago

0.1.0

11 years ago