1
64
如果两个都可以的话
|
2
60
将路径分解为组件目录和文件名,然后返回最后一个部分(文件名),它是数组的最后一个元素。 |
3
19
上面的任何一个都可以工作,尽管它们不尊重速度/内存:—)。 更快/更简单的实现应该使用尽可能少的函数/操作。regexp是一个糟糕的选择,因为它消耗了大量的资源,而实际上我们可以获得相同的结果,但更容易。 当需要包含扩展名的文件名(实际上是 真正的定义 基础名称):
如果你需要定制 basename实现 它还必须去掉扩展,我建议您在这种情况下使用一个特定的扩展剥离函数,您可以随时调用它。
使用实例:
它们是分开的,这样您就可以将它们组合起来获得3种不同的东西:去掉扩展名、获取真实的基名、获取自定义的基名。我认为它比其他方法更优雅。 |
4
9
如果可以的话,可以尝试使用现有的包。 http://nodejs.org/api/path.html
其他例子:
|
5
6
替换以斜线结尾的任何内容
|
6
2
就像@3dface评论的那样:
或者如果你喜欢原型:
测试:
将返回“need-a-basename-function-in-javascript”。 享受! |
7
1
|
8
1
另一个好的解决方案:
|
9
1
与上面提供的错误信息相反,正则表达式是非常有效的。警告是,如果可能的话,它们应该处于一个位置,以便在程序的生命周期中编译一次。 这里有一个解决方案 目录名 和 基名 .
至于性能,我没有测量它,但是我希望这个解决方案与本页上其他最快的解决方案在相同的范围内,但是这个解决方案做得更多。帮助真实世界的表现是
这是一些测试代码。
下面是测试代码产生的结果:
顺便说一下,“node”有一个名为“path”的内置模块,它有“dirname”和“basename”。node的“path.dirname()”函数准确地模仿了“bash”shell的“dirname”的行为,但是这样做好吗?它的作用是:
我更喜欢上面定义的函数的结果。 |
10
0
使用regex相当简单:
说明:
匹配一个单点字符,后跟除点以外的任何字符(
然后,它根据匹配条件拆分字符串,并返回第一个结果(即匹配前的所有内容)。 [编辑] 哦。误读了这个问题——他也想把这条路也剥离掉。哦,好吧,不管怎样,这回答了一半的问题。 |
11
0
|
12
0
如果原始字符串或文本文件包含单个反斜杠字符,则可以使用'\'定位它。 在我的情况下,我使用javascript从文本文件中查找\n“的索引。str.indexof('\n');帮助我从源文件中读取的原始字符串中找到\n。 希望它有帮助。 |
13
0
更新
一个改进的版本,与Forward一起工作
请参阅下面的工作演示
一个更简单的解决方案可能是
|
Dima Malko · 如何在指定符号前添加符号? 2 年前 |
shekharsabale · 从列表元素捕获子字符串 2 年前 |
Manny · 如何比较Perl中的字符串? 2 年前 |
Manan Girdhar · 拆分字符串并仅在java中使用第二部分 2 年前 |
AnxiousLuna · Python使用len()获取数组索引数 2 年前 |
antonoyaro8 · 数据帧中每列上的Grepl 2 年前 |