-2

我有这样的内容的javascript字符串:

" xxxxxxx -errors follow: xxxxxxxxx failed validation xxxxx : yyyyyyyyyyyyyyyyy " 

如何从我的字符串中提取 yyyyy?注意我想获取最后一个“:”和字符串结尾之间的文本。

4

6 回答 6

3

您可以使用String.prototype.split()并获取结果数组中的最后一个:

var a = " xxxxxxx -errors follow: xxxxxxxxx failed validation xxxxx : yyyyyyyyyyyyyyyyy ".split(':');
console.log(a[a.length - 1]); // " yyyyyyyyyyyyyyyyy "
于 2013-10-28T05:39:13.523 回答
3

你可以使用这样的正则表达式:

/:\s*([^:]*)\s*$/

这将匹配一个文字:,后跟零个或多个空白字符,后跟零个或多个 :1 组中捕获的任何字符,后跟零个或多个空白字符和字符串的结尾。

例如:

var input = " xxxxxxx -errors follow: xxxxxxxxx failed validation xxxxx : yyyyyyyyyyyyyyyyy ";
var output = input.match(/:\s*([^:]*)\s*$/)[1];
console.log(output); // "yyyyyyyyyyyyyyyyy"
于 2013-10-28T05:39:32.100 回答
3
var s = " xxxxxxx -errors follow: xxxxxxxxx failed validation xxxxx : yyyyyyyyyyyyyyyyy "
s.substring(s.lastIndexOf(':')+1)
于 2013-10-28T05:42:09.103 回答
2

您可以使用以下string.lastIndexOf()方法:

var text = " xxxxxxx -errors follow: xxxxxxxxx failed validation xxxxx : yyyyyyyyyyyyyyyyy ";
var index = text.lastIndexOf(":");
var result = text.substring(index + 1); // + 1 to start after the colon
console.log(result); // yyyyyyyyyyyyyyyyy 
于 2013-10-28T05:40:40.120 回答
2
var str=" xxxxxxx -errors follow: xxxxxxxxx failed validation xxxxx : yyyyyyyyyyyyyyyyy "

var arr=new Array(); arr=str.split(":");

var output=arr[arr.length-1];
于 2013-10-28T05:45:55.617 回答
1
var s=" xxxxxxx -errors follow: xxxxxxxxx failed validation xxxxx : yyyyyyyyyyyyyyyyy "

s= s.substr(s.lastIndexOf(':')+1);
于 2013-10-28T05:59:28.033 回答