2011-07-29 41 views

回答

24

如果你不想分裂(更快,更少的内存消耗)的字符串,可以使用indexOf()substr()

var original = "Mon 25-Jul-2011"; 
var result = original.substr(original.indexOf(" ") + 1); 
+0

会使用'original.split('').pop();'如果我们只希望最后一项是结果,速度会更快吗? –

+1

@Cristus,你仍然需要标记整个字符串,并用标记构建一个数组,以访问最后一个。 'pop()'也会改变这个数组(它将会删除它返回的数据)为空。所以我不认为这会更快,不。 –

+0

这是一个很好的答案,但它忽略了字符串在字符串前面可能包含一个额外的尾部空白的事实,从而使这是一个错误的解决方案。你需要修剪额外的空格。 – AleksandrH

8
var string = "Mon 25-Jul-2011"; 
var parts = string.split(' '); 
parts.shift(); // parts is modified to remove first word 
var result; 
if (parts instanceof Array) { 
    result = parts.join(' '); 
} 
else { 
    result = parts; 
} 
// result now contains all but the first word of the string. 
1

你可以操纵任何DOM,用他们的参考ID,类或标签。实施例

<div id="date">Mon 25-Jul-2011</div> 
<script> 
$(document).ready(function() { 
    var strDate = $('#date').html(); 
    // Using regex, this will remove any day which may present in your date DOM 
    strDate.replace(/(mon|tue|wed|thu|fri|sat)/i, ''); 
    // This to trim any space present 
    strDate.replace(/^\s+|\s+$/g,''); 
    $('#date').html(strDate); 
}); 
</script> 
0

另一种解决方案:

var line = "Mon 25-Jul-2011"; 
var edited = line.substring(line.indexOf(" ") + 1, line.length); 
+0

对不起,太慢了。与@Frédéric的答案相同,除了可能稍微差一些。 – JWeary

0

这应该输出 “25-JUL-2011”:

var string = "Mon 25-Jul-2011"; 
string = string.split(' ').pop(); 
+1

不,如果我有“Stack Over Flow”之类的东西,它会返回“Flow”。 –

0

我想从字符串中的阵列中的每个项目中删除第一个字。我使用split,slice,join

var str = "Mon 25-Jul-2011" 
var newStr = str.split(' ').slice(1).join(' ') 
console.log(str) 

运行这段代码在控制台,你会得到预期的字符串。

0
var str = "Mon 25-Jul-2011"; 
var firstSpace=str.indexOf(" "); 
var newStr= str.slice(firstSpace); 
//result:"25-Jul-2011" 
+0

@GowthamShiva没有链接。 – Melebius

相关问题