使用"^"检查字符串是否以另一个字符串开头?

tim*_*mkl 2 javascript

可能重复:
javascript - 检查字符串是否以某些东西开头?

我在这篇文章中读到你可以使用^ =来检查字符串是否以某些东西开头.

我摆弄了这个例子:

var foo = "something-something";
if(foo ^= "something") {
    alert("works!");
}
else{
    alert("doesn't work :(");
}
Run Code Online (Sandbox Code Playgroud)

它不起作用 - 有人怎么做?

jsfiddle示例:http://jsfiddle.net/timkl/M6dEM/

小智 10

我想,或许,你在考虑:

var x = "hello world!"
if (x.match(/^hello/)) {
   alert("I start with it!")
}
Run Code Online (Sandbox Code Playgroud)

这使用了一个anchored(^)正则表达式:它必须在输入的开头找到"hello" 才能匹配.

另一方面,x ^= "foo"是相同的x = x ^ "foo",或者是一个排他性的或者.在这种情况下,相当于x = "something-something" ^ "something"- > x = 0 ^ 0- > 0(这是一个假值,永远不会是真的).

快乐的编码.


Chu*_*ris 8

   var foo = "something-something";
if(foo.indexOf("something") === 0) {
    alert("works!");
}
else{
    alert("doesn't work :(");
}
Run Code Online (Sandbox Code Playgroud)

查看更新的jsfiddle http://jsfiddle.net/M6dEM/3/


shi*_*t66 5

使用substring()方法.

if(foo.substring(0,"something".length) == "something") {
    alert("works!");
}
else{
    alert("doesn't work :(");
}
Run Code Online (Sandbox Code Playgroud)

我编辑了我的答案并用"某事"替换了"9".所以现在没有硬编码了.