如果我有一个像1.10.6或1.6.5或1.33.10这样的字符串,我希望能够在第二次完整停止之前选择字符串。
所以1.10.6将是1.10,1.6.5将是1.6而1.33.10将是1.33
请使用javascript进行此操作的最佳方式是什么? 感谢。
答案 0 :(得分:3)
通过数组
var str = '1.10.6'.split('.').slice(0, 2).join('.');
使用 RegExp
var str = '1.10.6'.match(/\d+\.\d+/)[0];
另外
var str = '1.10.6'.split(/(\d+\.\d+)/)[1];
使用两个 String indexOf
s
var str = '1.10.6', i = str.indexOf('.');
str = str.slice(0, str.indexOf('.', i + 1));
使用字符串的 lastIndexOf
,假设只有两个.
s
var str = '1.10.6', i = str.lastIndexOf('.');
str = str.slice(0, i);
答案 1 :(得分:1)
var foo = '1.2.3';
var bar = foo.split('.') // '1.2.3' => ['1','2','3']
.slice(0, 2) // ['1','2','3'] => ['1','2']
.join('.'); // ['1','2'] => 1.2
首先使用分割将其分解为部分,使用切片仅选择前两个部分(从第一个元素[元素0]开始并选择2),然后再次使用句点重新加入。
答案 2 :(得分:0)
if (/\.\d+\.\d+$/.test(s)){
return s.replace(/\.\d+$/, '')
}
答案 3 :(得分:0)
答案 4 :(得分:0)
试试这个:
var str = str.split('.')
str = str[0]+'.'+str[1];
JSFiddle:http://jsfiddle.net/FlameTrap/hTgaZ/