Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/364.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中包含特定单词的JSON值_Javascript_Html_Json_Regex_Parsing - Fatal编程技术网

删除JavaScript中包含特定单词的JSON值

删除JavaScript中包含特定单词的JSON值,javascript,html,json,regex,parsing,Javascript,Html,Json,Regex,Parsing,我正在使用一个包含电视节目信息的JSON文件的 键“name”包含来宾信息。他们中的大多数人都会带着客人名单回来,但也有一些人会以“插曲[x]”的形式回来。例如: for (x in data){ let title = data[x]._embedded.show.name; let guests = data[x].name; let airdate = data[x].airdate; switch(title){ // ... case 'The Daily Sho

我正在使用一个包含电视节目信息的JSON文件的

键“name”包含来宾信息。他们中的大多数人都会带着客人名单回来,但也有一些人会以“插曲[x]”的形式回来。例如:

for (x in data){
 let title = data[x]._embedded.show.name;
 let guests = data[x].name;
 let airdate = data[x].airdate;

 switch(title){
   // ...
   case 'The Daily Show with Trevor Noah':
      p.innerHTML = airdate + " " + guests;
      noah.appendChild(p);
      console.log(airdate, guests);
      break;
   default:
      break;
 }
}
来宾值返回为:

凯文·杨,安托瓦内特·罗伯逊,迈克尔·海登将军,大卫·布莱恩,第63集,第64集,第65集


我只想显示名称,并以某种方式删除“插曲”的任何实例。我有一些想法,但我是JavaScript新手,遇到了一些麻烦。如果需要更多代码来回答此问题,我将更新此问题。提前感谢

如果您只想打印标题中没有
插曲的项目,您可以在
开关()之前放置
If()
语句,然后在遇到无效项目时使用语句跳过它(
continue
将告诉Javascript基本上跳到下一个项目)

使用正则表达式怎么样

var pattern = /(,\s)?Episode\s\d+((,\s)?)/g;
var guests = data[x].name.replace(pattern, "");
测试用例:

var str1 = "Kevin Young, Antoinette Robertson, Gen. Michael Hayden, David Blaine, Episode 63, Episode 64, Episode 65"; 
var str2 = "Episode 63, Episode 64, Episode 65, Kevin Young, Antoinette Robertson, Gen. Michael Hayden, David Blaine"; 
var str3 = "Kevin Young, Antoinette Robertson, Gen. Michael Hayden, David Blaine";
var str4 = "Episode 63, Episode 64, Antoinette Robertson, Episode 65";
var str5 = "Episode 63, Episode 64, Episode 65";
var str6 = "Episode 63";

您可以替换
插曲[0-9]
的所有实例,如下所示:

var str=“凯文·杨,安托瓦内特·罗伯逊,迈克尔·海登将军,大卫·布莱恩,第63集,第64集,第65集”;
var newStr=str.replace(/,[]?插曲[]?[0-9]+/g');
console.log(newStr);

//凯文·杨,安托瓦内特·罗伯逊,迈克尔·海登将军,大卫·布莱恩
如果回答这个问题需要代码,我会用必要的信息更新这个问题。
是的,如果你想帮助调试问题,一定要发布你尝试过的代码。当然,我只是更新了我的问题,我不认为这是一个
开关(标题){
是通过JSON调用返回的…而不是有效的JSONfunction@AmrAly替换会删除“插曲”,但我想删除包含“插曲”的整个值。否则,插曲编号仍然存在。不知道是否有某种“包含”方法可以删除所有实例谢谢!这非常有效。如果声明应该以“来宾”而不是“标题”开头,但这确实有效。
var str1 = "Kevin Young, Antoinette Robertson, Gen. Michael Hayden, David Blaine, Episode 63, Episode 64, Episode 65"; 
var str2 = "Episode 63, Episode 64, Episode 65, Kevin Young, Antoinette Robertson, Gen. Michael Hayden, David Blaine"; 
var str3 = "Kevin Young, Antoinette Robertson, Gen. Michael Hayden, David Blaine";
var str4 = "Episode 63, Episode 64, Antoinette Robertson, Episode 65";
var str5 = "Episode 63, Episode 64, Episode 65";
var str6 = "Episode 63";