一種不同的方法
我來到這裏需要的是可以解析的報價和非引號的字符串,保存報價與非報價的順序,然後用它們纏特定的標記,反應或做出反應其輸出的方法原生所以我最終沒有在這裏使用答案,因爲我不知道如何讓他們適應我的需要,然後做了這個。
function parseQuotes(str) {
var openQuote = false;
var parsed = [];
var quote = '';
var text = '';
var openQuote = false;
for (var i = 0; i < str.length; i++) {
var item = str[i];
if (item === '"' && !openQuote) {
openQuote = true;
parsed.push({ type: 'text', value: text });
text = '';
}
else if (item === '"' && openQuote) {
openQuote = false;
parsed.push({ type: 'quote', value: quote });
quote = '';
}
else if (openQuote) quote += item;
else text += item;
}
if (openQuote) parsed.push({ type: 'text', value: '"' + quote });
else parsed.push({ type: 'text', value: text });
return parsed;
}
,鑑於此,當:
'Testing this "shhhh" if it "works!" " hahahah!'
產生:
[
{
"type": "text",
"value": "Testing this "
},
{
"type": "quote",
"value": "shhhh"
},
{
"type": "text",
"value": " if it "
},
{
"type": "quote",
"value": "works!"
},
{
"type": "text",
"value": " "
},
{
"type": "text",
"value": "\" hahahah!"
}
]
,讓您可以輕鬆地環繞它的標籤取決於它是什麼。
https://jsfiddle.net/o6seau4e/4/