Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/432.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 如何在字符串中获取带引号的文本?_Javascript_Jquery_Regex - Fatal编程技术网

Javascript 如何在字符串中获取带引号的文本?

Javascript 如何在字符串中获取带引号的文本?,javascript,jquery,regex,Javascript,Jquery,Regex,我有这样一个字符串: var examplestring = 'Person said "How are you doing?" '; 如何获取双引号中的字符串。具体地说,我想要一个var,它被设置为“你是怎么做的?”?在这种情况下 var quotedString = examplestring.split('"')[1]; 这将在“每个”上拆分为以下内容 quotedString[0] = "Person said "; quotedString[1] = "How are you do

我有这样一个字符串:

var examplestring = 'Person said "How are you doing?" ';
如何获取双引号中的字符串。具体地说,我想要一个var,它被设置为“你是怎么做的?”?在这种情况下

var quotedString = examplestring.split('"')[1];
这将在“每个”上拆分为以下内容

quotedString[0] = "Person said ";
quotedString[1] = "How are you doing?"
quotedString[2] = " ";
然后从新数组的索引1中选择,返回“你好吗?”(不带引号)


一种方法是使用正则表达式:

var match = exampleString.match(/"([^"]*)"/);

if(match) {
  var quoted = match[1]; // -> How are you doing?
} else {
  //no matches found
}

如果字符串是“某人说“你好吗?”然后说“更好吗?”?" '; ?在我的例子中,我可以确保字符串中只有一组双引号。谢谢。你能解释一下正则表达式字符串及其工作原理吗?我很好奇。第一个和最后一个字符,
/
,只是以regex模式开头和结尾的分隔符。报价当然就是你要找的报价。
[^”]
表示查找除双引号以外的任何字符,
*
表示您希望尽可能多地匹配0个或多个字符。括号表示将“捕获”模式的哪一部分。在这种情况下,只有一个捕获组,因此
匹配[1]
中填充了匹配项。在英语中,这表示:“在非双引号的双引号后立即查找尽可能多的连续字符”仅供参考:如果有两个以上的双引号,则此grep会有点奇怪。
var match = exampleString.match(/"([^"]*)"/);

if(match) {
  var quoted = match[1]; // -> How are you doing?
} else {
  //no matches found
}