Extract sub string from last in a string JS
本问题已经有最佳答案,请猛点这里访问。
我需要编写JS函数,如果字符串的最后一个值中包含
例如:
1 | var somestring ="string value - depreciated"; |
在上面的示例中,函数应返回true。
1 2 3 4 5 | function isDepreciated(var S) { //Need to check for substring in last //return true or false } |
一种可能的解决方案是使用
请帮忙。
在JS中添加以下代码
1 2 3 | function isDepreciated(string){ return /(-depreciated)$/.test(string); } |
您可以使用currying:http://ejohn.org/blog/partial-functions-in-javascript/
1 2 3 4 5 6 7 | Function.prototype.curry = function() { var fn = this, args = Array.prototype.slice.call(arguments); return function() { return fn.apply(this, args.concat( Array.prototype.slice.call(arguments))); }; }; |
通过helper curry函数,您可以创建ISDeprecated检查:
1 2 3 | String.prototype.isDepricated = String.prototype.match.curry(/- depreciated$/); "string value - depreciated".isDepricated(); |
或使用
1 2 3 | var isDepricated = RegExp.prototype.test.bind(/- depreciated$/); isDepricated("string value - depreciated"); |
1 2 3 4 | function isDepreciated(S) { var suffix ="- depreciated"; return S.indexOf(suffix, S.length - suffix.length) !== -1; } |
您将要使用javascript字符串方法
1 2 3 4 5 6 | function isDepreciated(var id) { var id ="string value - depreciated"; var lastdepreciated = id.substr(id.length - 13); // =>"- depreciated" //return true or false check for true or flase } |
这将获取从id.length-13开始的字符,由于省略了.substr()的第二个参数,因此将继续到字符串的结尾。
这里已经有很多答案了(最好是带美元的答案),尽管我也要写一个,所以它也能帮你完成工作。
1 2 3 4 5 6 7 | var somestring ="string value - depreciated"; var pattern="- depreciated"; function isDepreciated(var s) { b=s.substring(s.length-pattern.length,s.length)==pattern; } |
只用正则表达式怎么样
1 2 3 4 5 6 7 8 | var myRe=/depreciated$/; var myval ="string value - depreciated"; if (myRe.exec(myval)) { alert ('found'); } else{ alert('not found'); } |
1 2 3 | function isDepreciated(S){ return (new RegExp(" - depriciated$").test(S)); } |
1 2 3 4 5 6 7 8 9 10 11 12 | function isDeprecated(str) { return ((str.indexOf("- depreciated") == str.length -"- depreciated".length) ? true : false); } isDeprecated("this") false isDeprecated("this - depreciated") true isDeprecated("this - depreciated abc") false |
好吧,我还没有在浏览器上运行这段代码,但是这应该让我对该做什么有一个基本的了解。如果需要的话,你可能需要调整一些条件。
1 2 3 4 5 6 7 8 9 | var search ="- depricated"; var pos = str.indexOf(search); if(pos > 0 && pos + search.length == str.length){ return true; } else{ return false; } |
edit: