如果我有一个像 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最好的方法是什么?谢谢。
如果我有一个像 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最好的方法是什么?谢谢。
通过数组
var str = '1.10.6'.split('.').slice(0, 2).join('.');
使用正则表达式
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));
使用String's lastIndexOf
,假设只有两个.
s
var str = '1.10.6', i = str.lastIndexOf('.');
str = str.slice(0, i);
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
首先使用 split 将其分解为多个部分,使用 slice 仅选择前 2 个部分(从第一个元素 [element 0] 开始并选择 2),然后使用句点再次将其重新加入。
if (/\.\d+\.\d+$/.test(s)){
return s.replace(/\.\d+$/, '')
}
尝试这个:
var str = str.split('.')
str = str[0]+'.'+str[1];
JSFiddle:http: //jsfiddle.net/FlameTrap/hTgaZ/