15

私はいくつかの非常に厳しいパックエンドの制限内で作業しており、彼の要求に容赦のないクライアントがいるため、.jsでやりたくないことをすることを余儀なくされています。

とにかく、ここに行きます。

お客様のレビューがあります。それらのレビューの最後に、「- 米国」または「- オーストラリア」があります。基本的に、すべてのレビューの最後に「-[場所]」があります。その文字列をレビュー テキストから取り出して、スパンに挿入する必要があります。私はjQueryを使用しているので、それに固執したいと思います。

各レビューを実行して必要な場所に挿入する方法を整理しましたが、各レビューからその文字列を取得して各レビューから削除する方法がわかりません. それは私が本当に助けを借りることができるところです。

テキスト例:

<div class="v2_review-content">
    <h4>These earplugs are unbelievable!</h4>
    <p class="v2_review-text">These are the only earplugs I have ever used that completely block out annoying sounds. I use them at night due to the fact I am an extremely light sleeper and the slightest noise will wake me up. These actually stick to the ear in an airtight suction and do not come out at all until I pull them off in the morning. These are as close to the perfect earplug as you can get! - United States</p>
    <p class="v2_review-author">Jimmy, March 06, 2013</p>
</div>

それが役立つ場合は、underscore.jsも利用できます。

4

6 に答える 6

30

実際の文字列操作に jQuery は必要ありません。少し不格好ですが、理解しやすいです。

text = 'Something -that - has- dashes - World';
parts = text.split('-');
loc = parts.pop();
new_text = parts.join('-');

そう、

loc == ' World';
new_text == 'Something -that - has- dashes ';

空白はトリミングまたは無視できます (HTML 内では問題にならないことが多いため)。

于 2013-09-05T21:43:03.670 に答える
16

最初に「-」で攪拌を分割します。これにより、ダッシュ間の文字列の配列が得られます。次に、それをスタックとして使用し、最後の要素をポップして、trim を呼び出して厄介な空白を削除します (もちろん、空白が気に入らない場合)。

"String - Location".split('-').pop().trim(); // "Location"

したがって、jQueryを使用すると、

$('.v2_review-text').html().split('-').pop().trim(); // "United States"

またはバニラJSを使用する

var text = document.getElementsByClassName('v2_review-text')[0].innerHTML;
text.split('-').pop().trim(); // "United States"
于 2013-09-05T21:42:33.880 に答える
9

このようなことを試してください

str2 = str.substring(str.lastIndexOf("-"))
于 2013-09-05T21:43:09.547 に答える
3

最も簡単な方法は、おそらく jQuery を使用して要素を取得し、ネイティブ JavaScript を使用して文字列を取得することです。

var fullReview = $('.v2_review-text').text(); //assumes only one review exists, adjust for your use.
var country = fullReview.substring(fullReview.lastIndexOf(' - ') + 1); //TODO correct for -1 if ' - ' not found.

これは単なる概念実証です。残りは比較的簡単に理解できるはずです。学習中に調べておくべきこと: jQuery each

于 2013-09-05T21:42:49.577 に答える
2
var val = $('.v2_review-text').text();
var city_array = val.split('-');
var city = city_array[city_array.length - 1];

うまくいけば、私はあなたの相棒を助けました。

于 2013-09-05T21:45:05.693 に答える
1
var completeText = $('.v2_review-text')[0].value;
var country = completeText.substr(completeText.lastIndexOf('-'), completeText.lenght - 1);
于 2013-09-05T21:42:59.607 に答える