-1

如果我有一个像 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最好的方法是什么?谢谢。

4

5 回答 5

3

通过数组

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);
于 2013-07-22T14:22:44.027 回答
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

首先使用 split 将其分解为多个部分,使用 slice 仅选择前 2 个部分(从第一个元素 [element 0] 开始并选择 2),然后使用句点再次将其重新加入。

于 2013-07-22T14:21:31.600 回答
1
if (/\.\d+\.\d+$/.test(s)){
 return s.replace(/\.\d+$/, '')
}
于 2013-07-22T14:18:34.043 回答
0

尝试这个:

var str = str.split('.')
str = str[0]+'.'+str[1];

JSFiddle:http: //jsfiddle.net/FlameTrap/hTgaZ/

于 2013-07-22T14:22:05.510 回答
0

这是小提琴

例如:

var newString = string.substr(0,string.lastIndexOf('.'));
于 2013-07-22T14:19:01.540 回答