关于javascript:从字符串JS中的last中提取子字符串

Extract sub string from last in a string JS

本问题已经有最佳答案,请猛点这里访问。

我需要编写JS函数,如果字符串的最后一个值中包含- depreciated,则返回true。

例如:

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
}

一种可能的解决方案是使用search函数,但这意味着如果- depreciated包含在字符串中,那么它也将返回true。我真的需要找到天气子串是否在最后。

请帮忙。


在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();

或使用.bind()

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字符串方法.substr().length属性结合使用。

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:indexOf()返回字符串的起始索引。