Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在不带数字占位符的JavaScript中复制C#的string.format()_Javascript_Jquery_Node.js_Angularjs - Fatal编程技术网

在不带数字占位符的JavaScript中复制C#的string.format()

在不带数字占位符的JavaScript中复制C#的string.format(),javascript,jquery,node.js,angularjs,Javascript,Jquery,Node.js,Angularjs,C#的String.Format方法允许您保留“用指定对象的字符串表示形式替换指定字符串中的一个或多个格式项” 在这之后,结果会是什么样子 select col1,col2, col3 from table where col1 > 10; 我还在JavaScript中使用类似的函数,如下所示 this.FormatString = function() { var s = arguments[0]; for (var i = 0; i < arguments.le

C#的String.Format方法允许您保留“用指定对象的字符串表示形式替换指定字符串中的一个或多个格式项”

在这之后,结果会是什么样子

select col1,col2, col3 from table where col1 > 10;
我还在JavaScript中使用类似的函数,如下所示

this.FormatString = function() {
    var s = arguments[0];
    for (var i = 0; i < arguments.length - 1; i++) {
        var reg = new RegExp("\\{" + i + "\\}", "gm");
        s = s.replace(reg, arguments[i + 1]);
    }
    return s;
};
我想使用

string text = "select {0},{1},{2} from {3} where {4};"
string text = "select {Column List} from {TableName} where {Where Clause};"
我知道,与数字占位符相比,使用逻辑名称作为占位符并不通用,数字占位符允许用户传递N个参数(或创建N个占位符)


我正在使用JavaScript或任何基于JavaScript的库来寻找解决方案。

我不确定您到底在寻找什么。也许是这样的

var text = 'select {ColumnList} from {TableName} where {WhereClause}';
var values = {
    ColumnList:  'col1, col2, col3',
    TableName:   'table',
    WhereClause: 'col1 > 10'
};

var formatted = formatString(text, values);
// formatted now contains 'select col1, col2, col3 from table where col1 > 10'


function formatString (src, obj) {
    for (var key in obj) {
        if (obj.hasOwnProperty(key)) {
            var rx = new RegExp('\\{' + key + '\\}', 'gm');
            src = src.replace(rx, obj[key]);
        }
    }
    return src;
}

仅供参考:ECMAScript 6具有内置的模板字符串:。如果您在JavaScript上使用TypeScript,那么您已经可以使用此功能了。
var text = 'select {ColumnList} from {TableName} where {WhereClause}';
var values = {
    ColumnList:  'col1, col2, col3',
    TableName:   'table',
    WhereClause: 'col1 > 10'
};

var formatted = formatString(text, values);
// formatted now contains 'select col1, col2, col3 from table where col1 > 10'


function formatString (src, obj) {
    for (var key in obj) {
        if (obj.hasOwnProperty(key)) {
            var rx = new RegExp('\\{' + key + '\\}', 'gm');
            src = src.replace(rx, obj[key]);
        }
    }
    return src;
}