0

这是我尝试过的最近一段正则表达式....但是每次它给 -1 时,我希望它与我的字符串 str 匹配....我从基本文件路径开始,它应该返回任何更大的值如果匹配,则为 -1。

var str=" c:\folder1\ ";
var n;
var y=/^[a-z]\:\\(folder1)?\\$/g;
n=str.search(y);
alert(n);

我想为特定的文件夹名称编写它...它应该接受下面给出的字符串...示例

文件 C:\Program Files (x86)\Webdeveloper\dfg.dll

文件 C:\Program Files\Webdeveloper\dfg.exe

文件名将存在一些 dll 或 exe 扩展名。

/[c]{1}[:]{1}\{1}(folder1){1}\/ 在我使用http://regex101.com/#javascript时显示文件夹 1 的匹配项,我正在传递字符串“文件 c:\folder1\ 已损坏”。但它不适用于整个路径字符串。

提前致谢!

4

3 回答 3

0

尝试这个:

在每个 '\\' 中,一个 \ 是转义字符,另一个 \ 是字面量。

var str="c:\folder1\abc.txt";
var n;
var y=/^(c:\\folder1\\abc\.txt)$/;
n=str.search(y);
alert(n);
于 2013-09-24T10:38:25.670 回答
0

使用这个正则表达式

^[C][:]\\[A-Z+a-z ()0-9\\]+[.][a-z]+$

演示/测试

于 2013-09-22T07:44:55.430 回答
0

您的源字符串中有尾随空格,因此您的正则表达式将不匹配。此外,您应该在源字符串中添加斜杠以使其可捕获。将您的代码更改为:

var str=" c:\\folder1\\ ";
var n;
var y=/^\s*[a-z]\:\\(folder1)?\\\s*$/g;
str.match(y) // [" c:\folder1\ "]

\f是一个escape character意思是换页。

于 2013-09-22T07:34:42.707 回答