首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Javascript中更改多个索引处的文本

在Javascript中更改多个索引处的文本
EN

Stack Overflow用户
提问于 2017-05-04 00:58:39
回答 2查看 49关注 0票数 0

我从一个长查询中获得了以下示例,并试图构建一个工具:

代码语言:javascript
复制
var str =" SELECT 
             'Capital Return' AS Portfolio_Classification
            , '(Gross)' AS Portfolio_Type
            , '0.21%' AS Portfolio_Value
            , '' AS Benchmarks_Classification
            , '' AS Benchmarks_Comment
            , '' AS Benchmarks_Value
FROM hfhgjdfgj
WHERE number= 3
        UNION
        SELECT 
             'Capital Return' AS Portfolio_Classification
            , '(Net)' AS Portfolio_Type
            , '0.21%' AS Portfolio_Value
            , '' AS Benchmarks_Classification
            , '' AS Benchmarks_Comment
            , '' AS Benchmarks_Value"
FROM asdfasdf
WHERE 1=1

我尝试将单引号放在出现在后面的字符串后面,如下所示:

代码语言:javascript
复制
     var str =" SELECT 
             'Capital Return' AS 'Portfolio_Classification'
            , '(Gross)' AS 'Portfolio_Type'
            , '0.21%' AS 'Portfolio_Value'
            , '' AS 'Benchmarks_Classification'
            , '' AS 'Benchmarks_Comment'
            , '' AS 'Benchmarks_Value'
FROM hfhgjdfgj
WHERE number= 3
        UNION
        SELECT 
             'Capital Return' AS 'Portfolio_Classification'
            , '(Net)' AS 'Portfolio_Type'
            , '0.21%' AS 'Portfolio_Value'
            , '' AS 'Benchmarks_Classification'
            , '' AS 'Benchmarks_Comment'
            , '' AS 'Benchmarks_Value'"
FROM asdfasdf
WHERE 1=1

我尝试获取"AS"+1的所有索引,并将其设置为"AS '“,但仍然存在单词末尾没有单引号的问题。我看了Lodash和Vanilla Javascript,但还是在循环。

有人有什么建议吗?

EN

回答 2

Stack Overflow用户

发布于 2017-05-04 01:34:10

你想要这样的东西:

代码语言:javascript
复制
var str =" SELECT 'Capital Return' AS Portfolio_Classification , '(Gross)' AS Portfolio_Type , '0.21%' AS Portfolio_Value , '' AS Benchmarks_Classification , '' AS Benchmarks_Comment , '' AS Benchmarks_Value FROM hfhgjdfgj WHERE number= 3 UNION SELECT 'Capital Return' AS Portfolio_Classification , '(Net)' AS Portfolio_Type , '0.21%' AS Portfolio_Value , '' AS Benchmarks_Classification , '' AS Benchmarks_Comment , '' AS Benchmarks_Value";

str = str.split(' ');

for(var i = 0; i < str.length; i++){
    if(i != 0 && str[i-1] == "AS"){
        str[i] = '\'' + str[i] + '\'';
    }
}

str = str.join(' ');
票数 0
EN

Stack Overflow用户

发布于 2017-05-05 17:34:38

使用RegExp。搜索单词"as“、一个或多个空格以及由a-z0-9_-组成的单词。然后返回引用的结果。

代码语言:javascript
复制
var str = `SELECT 
             'Capital Return' AS Portfolio_Classification
            , '(Gross)' AS Portfolio_Type
            , '0.21%' AS Portfolio_Value
            , '' AS Benchmarks_Classification
            , '' AS Benchmarks_Comment
            , '' AS Benchmarks_Value
FROM hfhgjdfgj
WHERE number= 3
        UNION
        SELECT 
             'Capital Return' AS Portfolio_Classification
            , '(Net)' AS Portfolio_Type
            , '0.21%' AS Portfolio_Value
            , '' AS Benchmarks_Classification
            , '' AS Benchmarks_Comment
            , '' AS Benchmarks_Value"
FROM asdfasdf
WHERE 1=1
`;

var result = str.replace(/as\s+([a-z0-9_-]+)/gi, function(_, s) {
  return "AS '" + s + "'";
});

console.log(result);

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43765993

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档