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
}