![](/img/trans.png)
[英]is there any npm package for counting the number of words of a doc/docx file?
[英]A regex for NPM or any other package both for name and any version number
我在 SO 和 google 上搜索了一個很好的驗證正則表達式來檢測完整的NPM/其他包名稱(包名稱(@)版本號 - 所有格式)。
現在,在您將此問題標記為重復之前,我必須說我在這里搜索過,但我發現的所有內容都沒有對我有用:
正則表達式從nuget包文件名解析包名和版本號
用於版本號解析的正則表達式
npm/validate-npm-package-name
語義版本控制正則表達式
包名正則表達式
semver-regex
我自己也嘗試了幾個正則表達式,但沒有一個為任何邊緣情況做這項工作:
const regex = new RegExp(/(\^|\~?)(\d|x|\*)+\.(\d|x|\*)+\.(\d|x|\*)+/g);
const isScriptVersion = regex.test('imagesloaded@4.1');
if (isScriptVersion) {
}
或者
const regex = new RegExp('^(.*?)\.((?:\.?[0-9]+){3,}(?:[-a-z]+)?)');
console.log(regex.test('imagesloaded@4.1'));
也嘗試過使用第 3 方 NPM 包,但運氣不佳:
const packageNameRegex = require('package-name-regex')
console.log(packageNameRegex.test('font-awesome@5.11.2'))
const semverRegex = require('semver-regex');
console.log(semverRegex().test('font-awesome@5.11.2'));
這是我的測試列表:
ansi-escapes@^4.3.1
babel-eslint@^10.1.0
chance@^1.1.7
cli-cursor@^3.1.0
eslint@^7.13.0
faker@^5.1.0
forever-monitor@^3.0.1
fs-extra@^9.0.1
lorem-ipsum@^2.0.3
micromatch@^4.0.2
mongoose@^5.10.13
puppeteer@^5.4.1
puppeteer-extra@^3.1.15
puppeteer-extra-plugin-stealth@^2.6.3
random-email@^1.0.3
random-useragent@^0.5.0
random-words@^1.1.1
slice-ansi@^4.0.0
uuid@^8.3.1
validator@13.1.17
wrap-ansi@^7.0.0
font-awesome@5.11.2
react-dom@16.13.1
bootstrap@4.5.2
moment-duration-format@2.3.2
以上所有工作與
/(\^|\~?)(\d|x|\*)+\.(\d|x|\*)+\.(\d|x|\*)+/g
然而
以下對我不起作用:
imagesloaded@4.1
flickity@2.0
lomster@1
example@1.1.1.1.1
example-package@3.12.45.66.34.2
unicorn@1.2.3-alpha.10.beta.0
rainbow@v1.1.1
非常感謝你們。 干杯。
你可以試試這個正則表達式:
/@[~^]?([\dvx*]+(?:[-.](?:[\dx*]+|alpha|beta))*)/g
正則表達式詳情:
@
: 匹配一個@
[~^]?
: 匹配一個可選的~
或^
(
: 開始一個捕獲組 #1
[\\dvx*]+
: 匹配 1+ 個數字或v
或x
或*
字符(?:
開始一個非捕獲組
[-.]
: 匹配一個-
或.
(?:[\\dx*]+|alpha|beta)
: 匹配數字或v
或x
或*
字符或alpha
或beta
1+)*
: 結束非捕獲組。 *
表示匹配該組的 0 個或多個)
: 結束捕獲組 #1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.