2016-11-10 424 views
0

如何在包含使用lodash之前的短划线的字符串末尾获取最后的整数?获取匹配模式与lodash的字符串的结尾

'hello-world-bye-945' 

所以最终结果只是-945

+0

它是否必须与'lodash'?纯正则表达式或香草js会做.. – choz

+2

'' - '+'你好 - 世界再见 - 945'.split(' - ')。pop()' – Andreas

+0

@choz nope,香草js也可以接受。 – calebo

回答

0

使用JavaScript String#match方法

console.log(
 
    'hello-world-bye-945'.match(/-\d+$/)[0] 
 
)

0

s = 'hello-world-bye-945'.split('-'); 
 
ans="-"+s[s.length-1] 
 
console.log(ans);

1

您可以使用_.words

E.g

var str1 = 'hello-world-bye-945'; 
var str2 = 'hello-world-bye'; 
var pattern = /-(\d+)$/; 

_.words(str1, pattern)[0] 
// Returns "-945" 

_.words(str2, pattern)[0] 
// Returns "undefined" 
1

您可以使用String.prototype.lastIndexOf()String.prototype.slice()

var str = "hello-world-bye-945"; 
 
var match = str.slice(str.lastIndexOf("-")); 
 
console.log(match);

0

尝试这种模式

-[0-9A-z$&+,:;[email protected]#|'<>.^*()%!]+$ 

[0-9A-z $ & +,:; =?@#|' <>^*()%!]在列表中匹配任何字符

“+”比赛时间无限

$断言位置在字符串的结尾,或在年底的行终止权之前字符串(如果有的话)

+0

_last integer(s)_。作者不需要使用那种怪异的模式。 –