私はforループを使用して解析している文字列を持っています。ダブルクォート/シングルクォートの開始と終了を特定したい。以下は、私は単一引用符の例を与えている引用符の開始と終了を確認します
var str = "a = 'hello \'world\''; b = 'test'";
var strInputArr = [];
var singleQuote = false;
var startIndex, endIndex;
var tmpStr = [];
for(var i = 0; i < str.length; i++) {
if(singleQuote) {
if(str[i] === "'") {
strInputArr.push(tmpStr.join(''));
tmpStr = [];
singleQuote = false;
endIndex = i;
}
tmpStr.push(str[i]);
continue;
}
if(str[i] === "'") {
singleQuote = true;
startIndex = i;
}
}
console.log(strInputArr);
上記のコードの出力がある
[ "こんにちは"、 " '"、 "' テスト"]
が、それがあるべき
[ "こんにちは"世界"、 "テスト"]
。期待される出力を得るにはどうすればよいですか?
を返しながら、文字列(または列)の最初の発生を返す 'indexOf'と' lastIndexOf'はあなたのコードが –
良くanwserとしてそれを投稿@JaromandaXようになります、それは最も簡単なのです。 – Salketer
いいえ、@Salketer、私はコードを書いていないので、 –