Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/457.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 - Fatal编程技术网

Javascript 获取最后一个'之后的所有字符-';一串

Javascript 获取最后一个'之后的所有字符-';一串,javascript,jquery,Javascript,Jquery,我在一些非常严格的包端限制下工作,并且有一个客户端对他的请求不屈不挠,所以我不得不在.js中做一些我不想做的事情 不管怎么说,我来了 我有客户评论。在这些评论的结尾,我有“美国”或“澳大利亚”。基本上,在每次审查结束时,我都有一个“-[位置]”。我需要将该字符串从审阅文本中拉出,然后将其插入一个span中。我正在使用jQuery,所以我想继续使用它 我已经理清了如何浏览每一篇评论并将其插入需要的地方,但我还没有弄清楚如何从每一篇评论中获取文本字符串,然后将其从每一篇评论中删除。那才是我真正需要帮

我在一些非常严格的包端限制下工作,并且有一个客户端对他的请求不屈不挠,所以我不得不在.js中做一些我不想做的事情

不管怎么说,我来了

我有客户评论。在这些评论的结尾,我有“美国”或“澳大利亚”。基本上,在每次审查结束时,我都有一个“-[位置]”。我需要将该字符串从审阅文本中拉出,然后将其插入一个span中。我正在使用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>

这些耳塞真是难以置信!

这些耳塞是我使用过的唯一能完全屏蔽烦人声音的耳塞。我在晚上使用它们,因为我是一个非常轻的睡眠者,最轻微的噪音都会把我吵醒。事实上,它们会以一种密封的方式贴在耳朵上,直到早上我把它们拔下来,它们才出来。这些耳塞尽可能接近完美耳塞美国

吉米,2013年3月6日


如果有帮助的话,我还提供了underline.js。

首先在“-”上拆分字符串,这将在破折号之间提供一个字符串数组。然后将其用作堆栈,弹出最后一个元素并调用trim删除任何讨厌的空白(当然,除非您喜欢空白)

因此,使用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"

最简单的方法可能是使用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—有点笨重,但很容易理解:

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


空白可以被删减或忽略(因为在HTML中它通常并不重要)。

试试这样的方法

str2 = str.substring(str.lastIndexOf("-"))

希望我能帮到你,伙计。

在你的字符串中找到每一个出现的
“-”
,得到最后一个,之后的所有文本都是你的国家。从字符串中删除它,并将其放置在新元素中,附加到段落标记..那么,您已经尝试了什么?您是否一直在从HTML中提取字符串?还是解析出位置?关于更改现有DOM?到目前为止您尝试了什么?为什么不起作用?会发生什么?帮助我们帮助你。在“-”上拆分,数组的最后一个元素是Country,我已经搜索了该使用的函数/语法,但我被卡住了,因为这是.js的一个区域,我以前从未接触过,所以我甚至不知道如何去做。JavaScript是一种客户端语言,字符串解析是一种资源密集型语言,我想问问专业人士,最好的方法是什么。当然不像原生JS…它会在第一个破折号后检索任何文本,OP要求最后一个破折号。@Shomz:正确,已调整@ΔάκηςνΔρέΓ:你确定吗?lastIndexOf应该得到破折号的最后一个位置。回答得好。这实现了你的答案。(我想看到它工作,它工作得很好)。请随意修改/包含在您的答案中。这对我很有效,var completeText=$('.v2_review-text')[0]。value;var country=completeText.substr(completeText.lastIndexOf('-')+1,completeText.lenght);
text = 'Something -that - has- dashes - World';
parts = text.split('-');
loc = parts.pop();
new_text = parts.join('-');
loc == ' World';
new_text == 'Something -that - has- dashes ';
str2 = str.substring(str.lastIndexOf("-"))
var val = $('.v2_review-text').text();
var city_array = val.split('-');
var city = city_array[city_array.length - 1];