如何修复此文件名表达式?

时间:2017-07-07 12:12:57

标签: javascript regex extjs

我正在使用Ext.js作为filemanager。我试图只允许保存.c和.cpp文件。但我不能让两个文件扩展名都可以工作。

Ext.ns('Editor.FileCombo');

Editor.VTypes = Ext.form.field.VTypes;
Ext.apply(Ext.form.field.VTypes, {Expression
    fileNameExp: /^(?!main\.c$)([a-zA-z]+[\w-]*\.c)$/i, // Expression
    fileName: function(val,field){      // Test
        return this.fileNameExp.test(val);
    },
    fileNameText: 'The filename ist not in a valid format!<br />Filename has to end with \'.c\' Or \'.cpp\,<br />Allowed: a-z,A-Z,0-9,_,- <br />Filename <i>main.c</i> is reserved for the compiler.',      // Error QTIP Text
    fileNameMask: /[\w\d-\.]/i          // valid character Mask
});

尝试将fileNameExp修改为:

fileNameExp: /^(?!main\.c$)([a-zA-z]+[\w-]*\.c)$([a-zA-z]+[\w-]*\.cpp)/i 

但那不起作用..我看看Stackoverflow关于这个主题,但无法理解如何存档。如果有人能修复这个表达式代码,我将非常感激!

1 个答案:

答案 0 :(得分:0)

我相信这是您正在寻找的RegEx:/(?:^(?!main\.)[^\\/]+\.)(?:c|cpp)$/

您始终可以使用此网站测试JS RegEx:https://regex101.com/

请记住在左侧选择Javascript。