更改对列表重新编号的 Javascript 代码

我不熟悉 Javascript,但我想更改以下代码。目前,它以 01)、02) 等格式重命名程序 Keyboard Maestro 中的宏。我希望它只使用数字后跟空格的格式(即 1 、 2 等)我希望我描述的是有道理的。谢谢!


第1部分:


(function(inDesignMode) {

'use strict';


function dump(obj, desc) {

    console.log((desc ? desc + ": " : "") + JSON.stringify(obj, null, "\t"));

}


var KMEditor = (function() {

    var _editorAppName = "Keyboard Maestro";

    var _editorApp;


    return {

        getEditorApp: function() {

            return _editorApp ? _editorApp : _editorApp = Application(_editorAppName);


        getEditorAppName: function() {return _editorAppName;},


        getSelectedMacrosOrGroups: function() {

            return this.getEditorApp().selectedmacros();

        }

    };

})();


var KMEngine = (function() {

    var _engineApp;


    return {

        getAllMacrosSourceFileName: function() {

            return this.getAppSupportFolderName() + "Keyboard Maestro Macros.plist";

        },


        getAppSupportFolderName: function() {

            var app = Application.currentApplication();

            app.includeStandardAdditions = true;

            return app.pathTo('application support', { from: 'user domain' }) +

                "/Keyboard Maestro/";

        },


        getEngineAppName: function() {

            return "Keyboard Maestro Engine";

        },


        getEngineApp: function() {

            if (!_engineApp)

                _engineApp = Application(this.getEngineAppName());

            return _engineApp;

        },


        readPlistBinaryFile: function(path) {

            var data = $.NSData.dataWithContentsOfFile(path);

            return ObjC.deepUnwrap(

                $.NSPropertyListSerialization.propertyListWithDataOptionsFormatError(

                    data, $.NSPropertyListBinaryFormat_v1_0, 0, null));

        },

    };

})();


function getMacrosInfo(selectedMacroUUIDs) {


    function getMacroName(macro) {

        if (macro.Name)

            return macro.Name;

        throw Error("Un-named Macro UUID: " + macro.UID);

    }



撒科打诨
浏览 78回答 1
1回答

翻过高山走不出你

根据您的评论中获得的澄清,这就是您需要的:01)macro-->1 macro为此,您可以尝试execute()在第 2 部分的函数中添加以下行:const regExp = /^0(.)\)/i; //Creates the regular expression newName.replace(regex, '$1 '); //Replaces the match from the regex with a substring macro.name = newName;这是一个正则表达式子字符串替换(此处有更多详细信息)。这是正在做的事情的细目分类。该^符号表示正在从字符串的开头搜索子字符串。接下来只是在字符串开头对0a 进行字面搜索。0接下来(开始一个带括号的子匹配字符串,稍后将解释其用途。.表示任何单个字符。带括号的子匹配字符串的下一个)结尾较早开始。接下来\)是搜索)需要转义的字面值,\因为如上所述,)它具有结束带括号的子匹配字符串的特殊含义。现在,使用带括号的子匹配字符串,以便在与正则表达式匹配后,结果可以进一步用于替换匹配的字符串。在这种情况下,01)macro将1作为带括号的子匹配字符串匹配,因为它是前导 0 之后和 . 之前的单个字符)。这$1在 replace 函数中使用,以便在 matching 之后01),它被替换为1 (注意额外的空间,这是问题所要求的)。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript