JavaScript - 检查字符串是否以特定字符开头

6

我正在尝试检查字符串是否以字符“/”开头。

我该如何实现此目标?


可能是重复的问题:如何检查一个字符串是否以另一个字符串开头? - Damjan Pavlica
7个回答

21
if(someString.indexOf('/') === 0) {
}

3
虽然这样做可以完美地发挥作用,但它并不是最好的解决方案,因为它需要迭代整个字符串。 - Daniel Imms
@Tyriar - 我绝对同意。 - Justin Niessner
那么你们会推荐什么呢? - joshft91

11

通过下标运算符[]可以访问字符串的字符。

if (string[0] == '/') {

}

[0] 表示在 JS 中索引是从 0 开始的,因此代表字符串中的第一个字符。上述内容也可以使用正则表达式来实现。


@JustinNiessner 这对你来说有什么不必要的呢? - David G
1
只要字符串是一个变量,这就没问题。 - Daniel Imms
是的,因为我们只是检查字符串的第一个索引是否为“/”,而没有其他内容。 - wei2912
这是特定情况下的最佳答案,因为搜索字符串只有1个字符长。 - rvighne
这个用例看起来更好(检查字符串是否以一个特定字符开头)。此功能是在ES5中添加的;这里有一个参考链接:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String#Description - Van J. Wilson

4

现在是2022年,startsWith的支持非常好。

let string1 = "/yay"
let string2 = "nay"

console.log(string1.startsWith("/"))
console.log(string2.startsWith("/"))


2

使用正则表达式 /^\//.test(yourString) 代替 String.indexOf


1
data.substring(0, input.length) === input

请看以下示例代码。
var data = "/hello";
var input = "/";
if(data.substring(0, input.length) === input)
    alert("slash found");
else 
    alert("slash not found");

Fiddle


请检查一下,我已经修改了答案,并且在我看来它更加高效。如果您喜欢,请点赞支持一下。 - Umair Saleem
如果我没错的话,这并没有真正解决问题。请重新阅读问题 :) - wei2912
它解决了这个问题。请查看此fiddle链接:http://jsfiddle.net/umairsaleemid/kXY97/ - Umair Saleem
这确实解决了问题,尽管可能不是最好的方式。但并不值得被踩。 - c24w
1
+1 是因为这条路线是唯一一个可以轻松扩展为大字符串有效的 startsWith 的路线(尽管我更喜欢 slice 而不是 substring)。 - Paul S.
2
如果高效的可扩展性是目标,那么最好使用 substr这里 可以看到相关比较数据。 - c24w

0
var str = "abcd";

if (str.charAt(0) === '/')

0
<script>
   function checkvalidate( CheckString ) {
      if ( CheckString.indexOf("/") == 0 ) 
        alert ("this string has a /!");
   }
</script>

<input type="text" id="textinput" value="" />
<input type="button" onclick="checkvalidate( document.getElementById('textinput').value );" value="Checkme" />

抱歉 =)已编辑!我会在匆忙回答之前认真阅读问题 :)! - MackieeE

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接