获取子字符串问题(js.或jquery)
Get substring issue (js.. or jquery)
我做错了什么?
我需要在这里得到最后4个字符
<div class="test">11/16/2001</div>
<script>
var lastfour = $(".test");
lastfour.substr(6);
</script>
努力在这里度过新的一年。我知道我的语法很糟糕,但我只是在寻找最简单的解决方案。
谢谢!
$(".test");
返回一个jquery对象,而不是字符串。您需要调用.text()
来获取文本。
此外,您还有一个额外的)
。
此代码还假设只有一个元素具有您关心的test
类。如果还有更多,请查看each
。
这是否只适用于像您的示例中那样的mm/dd/yyyy格式的日期?
在这种情况下,此解决方案(http://jsfiddle.net/TU4aF/)会更好。
var date = $(".test").text();
var splitDate = date.split('/');
var year = splitDate[2];
它可以处理个位数的月份和天数。
如果最后四个,最好的方法是使用负值,因此它将是(使用固定变量,如Sintheta所建议的):
<script>
var lastfour = $(".test").text().substr(-4);
</script>
此外,您的脚本中还有额外的)
lastfour.substr(6));
编辑(为子孙后代):
James指出IE中存在一个错误,负值返回整个字符串。这不适用于IE9。但slice()
函数在IE中也能正常工作,它也接受负值。
下面的示例使用以下字符串。我用了数字,所以很容易看出发生了什么。
var s="1234567890"
从第8个开始获取字符串中的所有字符(即start=7,因为它是从零开始的):
s.substr(7);//返回890
从字符串中获取前两个字符:
s.substr(0,2);//返回12
从字符串中获取最后两个字符:
s.substr(-2);//返回90
从第4个字符开始获取四个字符(即start=3):
s.substr(3,4);//return 4567
如果start+长度大于字符串中剩余的长度,则只包括字符串末尾的字符(显然没有其他内容可提取),因此生成的字符串可能不一定像您期望的那么长。下面的例子说明了这一点,其中传递的长度为20,但生成的字符串只有4个字符长:
s.substr(6,20);//return 7890
从末尾4开始获取两个字符:
s.substr(-4,2);//返回78
String.substring(开始,到)
String.substring()的工作方式与String.substr()略有不同,后者的开始和结束位置作为参数传递,而不是作为开始和长度传递。
试试这个
<div class="test">11/16/2001</div>
<script>
var lastfour = $(".test").text();
lastfour.substr(-4);
</script>
- jQuery/JS包含运算符或类似运算符
- 使用.on动态添加jquery/js不知道的html元素
- 如何检查链接是否有文本,并根据文本值评估条件-Jquery/JS
- 导致内容安全策略(CSP)冲突错误的本地jquery.js文件
- 在服务工作者中导入jquery.js
- jQuery/JS获胜't在表单验证后重定向
- jquery.js和jquery.lite.js有什么区别
- 在WordPress站点中加载jquery.js后加载javascript代码
- 将jQuery.js文件附加到html文档中
- jquery/js中的自执行函数
- 如何使用jquery/js/css逐步突出显示一段文本
- jQuery/JS Mimic Facebook's不在页面上时,标题在新消息上闪烁
- Rails:如何在jQuery(.js.erb)中调用“create”操作
- jQuery/JS:从服务器同步读取文本文件
- jQuery/js- 如何从基于 href 的类中获取菜单名称
- 相对于他在jQuery/Js中的一个内部数据对数组进行排序
- 获取剩余时间和上传文件速度 - ajax jquery/js
- 如何在One'中包含jQuery.js;s Own.js在$(document).ready之前
- jQuery js没有冲突
- 这是关于Jquery/JS的,如果我改变元素's HTML-我可以对它执行其他Jquery/JS操作吗