JavaScript,如何以最有效的方式从字符串中获得第二个值,如“;var1-var2”;
JavaScript, how in most effective way get second value from string like "var1-var2"
我知道.split("-",2),但我如何才能制作这样的
var str = "123-341235";
alert( str.split( "-",2 ) . [2] )<--- to get second one (341235) value?
Tnx寻求帮助全部!
我看到了两个简单的解决方案,它们具有大致相同的性能:
var str = "123-341235";
str.split('-')[1]; // => "341235" (slower)
str.slice(str.indexOf('-')+1); // => "341235" (faster)
这个jsPerf基准测试显示,"slice/indexOf"解决方案在Chrome和Firefox上的速度大约是前者的两倍。
请注意,对于任何一种解决方案,在检索字符串的第二部分之前,都必须检查hypen字符是否真的存在;我敢打赌,添加check仍然会使"slice/indexOf"解决方案更快。
您只需要省略"."(点)并以0:开始数组索引
str.split("-", 2)[1];
我通常使用这个:
str.split("-", 2).pop()
在一行中:
alert('123-341235'.split('-',2 )[1]);
你可以猜到两个:
var str = "123-341235";
alert( str.split('-',2)[1]) );
数组是基于零的,这意味着数组的第一个元素具有索引0,第二个索引1,依此类推。此外,数组和索引值([i]
)之间的点会产生错误。
这应该有效:
alert( str.split( "-",2 )[0] + '/' + str.split( "-",2 )[1]);
var str = "123-341235";
alert( (str.split("-"))[1] );
- 记住数组是基于零的,所以第二个数字是索引1
最快的IMHO
var str = "123-341235";
alert(str.substr(str.indexOf("-")+1));
第二个参数告诉split要执行多少次拆分。参见
http://www.w3schools.com/jsref/jsref_split.asp
进行
var tokens = str.split("-");
tokens[0] // 123
tokens[1] // 341235
split返回一个结果数组,记住数组是基于0的,所以[0]是第一个结果,[1]是第二个结果。
如果没有一些正则表达式overkill:,关于SO的JavaScript问题就永远不完整
var tokens = /^'d+-('d+)$/.exec(str);
if (tokens) {
console.log(tokens[1]);
}
事后看来,这允许进行格式验证。
相关文章:
- 下拉选择可自动更改第二个下拉选择
- 为什么不'在JQuery中找到第二个css选择器的工作
- 当单击第一个李时,它显示内容一,当单击第二个李时,它显示内容二
- CORS-重定向到第二个GET正在接收的页面
- 正则表达式与数字中的第二个点匹配
- 如何在react js中移动第二个组件
- 使用Javascript,如何显示<tr>在另一<tr>悬停时,隐藏第二个<tr>
- 关闭第二个事件源上的第一个事件源's onopen方法
- D3从嵌套的JSON中绘制第二个圆环图
- IE11中的第二个调用取消了第一个Fetch API调用
- 第一个字第一个字符第二个字第二个字符,一直到数组结束
- 角度指令:指向第二个元素
- 时间选择器:如何通过更改第一个值来更改第二个值
- 我如何从字符串中选出第一个单词的第一个字母,然后再选出第二个单词
- 与网络界面相比,谷歌搜索API有时会重复第一个结果,有时会重复第二个结果
- 第二个存在条件不起作用
- 从第一个日期选择器定义第二个日期选择器的开始日期
- 如果未选择第一个下拉列表,则禁用第二个下拉列表
- Ember.js(v2.4.5)组件不是't错过第二个动作
- JavaScript,如何以最有效的方式从字符串中获得第二个值,如“;var1-var2”;