Python String.startswith(),包含Javascript

时间:2015-07-29 14:13:27

标签: javascript python string

Python startswith()允许我测试一个字符串是否以字符串元组开头,如下所示,这是我想用JavaScript实现的

testvar = 'he', 'hi', 'no', 'ye'
if my_string.startswith(testvar):
    return True

我已经看到了这个SO question,并没有完全帮助实现这一目标。

我需要一个JavaScript代码,它将使用上面的Python代码执行相同的操作。

5 个答案:

答案 0 :(得分:1)

您需要的只是一个简单的 Array 循环,其中一个答案显示在那里,

var testvar = ['he', 'hi', 'no', 'ye'];

function startsWith2(haystack, needles) {
    var i = needles.length;
    while (i-- > 0)
        if (haystack.lastIndexOf(needles[i], 0) === 0)
            return true;
    return false;
}

startsWith2('hello world', testvar); // true
startsWith2('foo bar baz', testvar); // false

同样适用于endsWith;

function endsWith2(haystack, needles) {
    var i = needles.length, j, k = haystack.length;
    while (i-- > 0) {
        j = k - needles[i].length;
        if (j >= 0 && haystack.indexOf(needles[i], j) === j)
            return true;
    }
    return false;
}

答案 1 :(得分:1)

由于已经有很多解决方案将数组作为参数传递,我将发布一个解决方案splat“*”样式参数:

String.prototype.startsWithSplat = function(){ 
  var args = Array.prototype.slice.call(arguments, 0, arguments.length); 
  var i;
  var matched = false;
  var self = this;
  for(i = 0; i < args.length; i++){
    if(self.slice(0, args[i].length) == args[i]){
      matched = true;
      break;
    }
  }
  return matched;
}

然后你可以打电话:

my_string.startswith('he', 'hi', 'no', 'ye');

答案 2 :(得分:0)

因为他们可以完全相同的长度:

testvar = ['he', 'hi', 'no', 'ye']
return testvar.indexOf(my_string.substring(0,2)) > -1

还有一些例子:

// Examples:
testvar = ['he', 'hi', 'no', 'ye']
my_string = 'hello'
testvar.indexOf(my_string.substring(0,2)) > -1
true

my_string = 'apples'
testvar.indexOf(my_string.substring(0,2)) > -1
false

答案 3 :(得分:0)

您可以对您的测试数组运行reduce操作,以查找变量是否以其中任何一个开头。

var testVar = ['he', 'hi', 'no', 'ye'];
var myString = 'hello';

var startsWithAny = testVar.reduce(function (returnValue, currentTest) {
  return returnValue || myString.startsWith(currentTest);
});

if (startsWithAny) {
  return true;
}

答案 4 :(得分:0)

var testvar = ['he','hi','no','ye'];
var str = "hello";

for(i = 0; i < testvar.length; i++)
{
   if (str.startsWith(testvar[i]) == true)
            console.log(str+" starts with: "+testvar[i]);
}