Regex匹配除“”之外的所有字符;.js”;
Regex match all characters except ".js"
我正试图用javascript将模块名称与其路径分离。我在上面接收regex的字符串的末尾可能有也可能没有".js",但在第二个匹配组中,如果有".js",我就不需要它。这是迄今为止的正则表达式:
(['.'/]?.+'/)?(.+['.js]?)
例如,如果我有字符串:/piechart.js
匹配组1:./
比赛组2:花图
更多测试/示例:https://regex101.com/r/nL9lK3/1
我建议先过滤字符串,然后用正则表达式来检索模块名称。
function getModule (filePath) {
var arr = filePath.split('/');
var len = arr.length;
var path = arr.splice(0, arr.length - 1).join('/');
var moduleName = arr[0].match(/([a-zA-Z'-'_]+)(?=('.js)?)/gi)[0];
return [path, moduleName];
}
此函数将返回一个由path
和moduleName
组成的数组。
所以试试这个
('/?.+'/)*(.+?)('.js)?$
并且只使用前两个匹配的组(这里是更新的regex101)。
第一组:('/?.+'/)*
匹配所有可能的路径,以最后一个斜线结束。
第二组:(.+?)
匹配路径后面的所有内容,但使用了一个惰性量词,允许第三组匹配(如果可以的话)。
第三组:('.js)?
匹配字符串末尾可能的.js
。
相关文章:
- Regex匹配除“”之外的所有字符;.js”;
- 无法呈现js unicode字符“u1F310”
- 在List.js中使用非英语字符
- node.js可以识别字符模式,但不能识别数字模式
- Javascript键代码捕获非拉丁字符?(还需要在selectize.js中工作)
- js中的字符计数器
- 如何删除↵JS字符串中的字符
- 如何使用JS在中间输入文本中动态插入字符
- 如何替换 js 中的特殊字符
- 用js更改字符代码并显示新字符
- 使用JS找出字符串中字符重复的最简单方法是什么
- JS Regex只允许数字、分号和连字符
- 如何在JS中使用特殊字符,如重音字符
- codemirror js-replaceSelection,只能在我键入字符后看到更改
- d3.js和加载具有特殊字符的数据
- JS如何捕获基于键入然后删除的字符的字段验证逻辑
- 在JS中至少匹配1个字符
- 为什么在物质中需要这个字符.js
- 如何从正则表达式中删除第一个字符[JS]
- 使用连字符.js在 dompdf 中进行连字