8

この文字列を作成する簡単な方法はありますか:

(53.5595313, 10.009969899999987)

この文字列に

[53.5595313, 10.009969899999987]

JavaScript または jQuery で?

私にはあまりエレガントではないように思われる複数の置換を試しました

 str = str.replace("(","[").replace(")","]")
4

5 に答える 5

31

さて、あなたが正規表現を求めたので:

var input = "(53.5595313, 10.009969899999987)";
var output = input.replace(/^\((.+)\)$/,"[$1]");

// OR to replace all parens, not just one at start and end:
var output = input.replace(/\(/g,"[").replace(/\)/g,"]");

・・・でも、ちょっと複雑です。あなたはただ使うことができます.slice()

var output = "[" + input.slice(1,-1) + "]";
于 2013-03-23T10:16:11.420 に答える
10

価値があるのは、 ( と ) の両方を置き換えるには、次のように使用することです。

str = "(boob)";
str = str.replace(/[\(\)]/g, ""); // yields "boob"

正規表現の文字の意味:

[  = start a group of characters to look for
\( = escape the opening parenthesis
\) = escape the closing parenthesis
]  = close the group
g  = global (replace all that are found)

編集

実際には、2 つのエスケープ文字は冗長であり、eslint は次のように警告します。

不要なエスケープ文字: ) no-useless-escape

正しい形式は次のとおりです。

str.replace(/[()]/g, "")
于 2016-12-20T11:36:56.800 に答える
7
var s ="(53.5595313, 10.009969899999987)";
s.replace(/\((.*)\)/, "[$1]")
于 2013-03-23T10:20:42.990 に答える
4

このJavascriptは、上記の「nnnnnn」による回答と同様に仕事をする必要があります

stringObject = stringObject.replace('(', '[').replace(')', ']')

于 2013-03-23T10:20:49.603 に答える