我有一个返回JSON字符串的API。我只想要它返回的部分字符串。
它返回汽车风格
"S 4dr Sedan (1.8L 4cyl 4A)"
"CE 4dr Sedan (1.8L 4cyl 4A)"
"LE 4dr Sedan (1.8L 4cyl 5M)"
"LE 4dr Sedan (1.8L 4cyl 4A)"
我想在括号中“串出”所有内容。我还没有真正使用Javascript字符串编辑,所以我真的不知道如何做到这一点。请帮忙。
(任何提示都很酷)
ps:我正在使用angularJS
答案 0 :(得分:5)
你应该检查正则表达式,你可以选择你想要的字符串位,然后删除其余部分,我不确定你是否想要括号中的文本或者你想要的一切,但是,我的样本使用之前的东西括号。你可以在这里玩正则表达式,我把你的样本放在那里:
https://regex101.com/r/lT8fB3/1
如果要使用括号内的内容,只需将替换字符串中的\ 1替换为\ 2
在java中,这可能是这样的:
String updated = your_json_string.replaceAll("\"\s?(.*)\s\((.*)\)\"", "$1");
答案 1 :(得分:1)
如果您要执行的操作是从字符串中删除括号中的任何内容,则可以使用具有合适replace的字符串对象的regular expression方法:
var carStyle = "S 4dr Sedan (1.8L 4cyl 4A)";
var s = carStyle.replace( /\(.*\)/ , "");
console.log(s); // "S 4dr Sedan "
相当繁琐的/\(.*\)/
是一个与括号及其内容相匹配的正则表达式。
注意:正如hexeri-software在评论中指出的那样,使用.*
来匹配括号is generally a bad idea之间的内容,这样一个更好的正则表达式可能是:
var s = carStyle.replace( /\([^)]*\)/ , "");
答案 2 :(得分:1)
您可以使用正则表达式:/(?=\().*/g
示例:
s = "S 4dr Sedan (1.8L 4cyl 4A)"
x = s.match(/(?=\().*/g)[0]
// will give you an array "(1.8L 4cyl 4A)"
答案 3 :(得分:0)
使用正则表达式可以解决您的问题。这是一个仅隔离两个括号之间的文本的示例。 这是一个link,可以了解有关javascript正则表达式的更多信息:
var first = "S 4dr Sedan (1.8L 4cyl 4A)";
var patt = /\(([^)]*)\)/gi
var res = patt.exec(first);
document.getElementById('first').value = res[1];

<label>first
<input id="first" />
</label>
&#13;