我有这个字符串,我试图在符合某些要求的文本周围添加引号。规则是在“Text:”之后和“;”之前的单词中添加“”。要么 '}' 这是字符串:EDIT(注意“”。这不是JSON对象。它只是一个字符串):
var str = "View_1:{
Name:"View1";
Image_1:{
BackgroundImage:"Image.gif";
Position: [0, 0];
Text: 320;
Height: 480
},
Button_1:{
BackgroundImage:"Button.gif";
Transition:"View2";
Position: [49, 80];
Width: 216;
Height: 71;
Text: more text more
},
Button_2:{
BackgroundImage:"Button2.gif";
Position: [65, 217];
Width: 188;
Text:Some Text;
Height: 134
},
}"
我无法让它工作
答案 0 :(得分:3)
试试这个:
str.replace(/Text:[\s]*([^;}\r\n]+)/ig, 'Text: "$1"');
虽然我怀疑str
是你问题中的字符串。它看起来更像(无效的)JSON对象而不是字符串。
答案 1 :(得分:0)
浏览器将无法解释此文字javascript对象上的任何内容。 语法错误。
首先应该在JS对象的每个属性上丢失分号,然后添加一个简单的昏迷。
看起来应该是这样的:
var str = View_1: {
Name:"View1",
Image_1:{
BackgroundImage:"Image.gif",
Position: [0, 0],
Text: 320,
Height: 480
},
Button_1:{
BackgroundImage:"Button.gif";
Transition:"View2",
Position: [49, 80],
Width: 216,
Height: 71,
Text: more text more
},
Button_2:{
BackgroundImage:"Button2.gif",
Position: [65, 217],
Width: 188,
Text:Some Text,
Height: 134
},
};
分号仅在对象的末尾。 这些属性不像常规变量。
答案 2 :(得分:0)
您可以使用
var fixed = s.replace(/(Text:\s*)(.+?)(\s*;|}|$)/gm,'$1"$2"$3');