检查字符串是否以标点符号开头(Javascript)

wes*_*509 1 javascript regex string jquery

如何使用Javascript检查我的数据字符串是否以标点符号开头?我查看了Check是否字符串是一个标点字符,以及如何知道字符串在jQuery中以特定字符串开头/结尾?和其他一些人,但我不知道我哪里出错了.

这是我到目前为止的一小部分:

      var punctuations = [".", ",", ":", "!", "?"];

      if (d.endContext.startsWith(punctuations)) {console.log(d.endContext)
      } else {console.log('false')};
Run Code Online (Sandbox Code Playgroud)

我只获得'假'回报,但如果我传入"." 在

if(d.endContext.startsWith('.'))
... 
Run Code Online (Sandbox Code Playgroud)

我得到了正确的结果.我也试过了

     String punctuations = ".,:;?!"
Run Code Online (Sandbox Code Playgroud)

比如检查字符串是否是建议的标点字符,但Chrome和Firefox都给了我错误消息(分别为"未捕获的语法错误:意外的标识符"和"SyntaxError:missing; before statement").看起来这个错误通常是在Javascript中编写多行字符串,我认为我不想这样做.d.endContext将打印多行字符串,但是当我传递"."时它工作正常,所以我不认为这是问题所在.

Rok*_*33r 8

使用正则表达式要简单得多.

    var str = '.abc'
    var result = !!str.match(/^[.,:!?]/)

    console.log(result)
Run Code Online (Sandbox Code Playgroud)
  • / 表示正则表达式的开始/结束

  • ^ 意思是'开始'

  • []意思是'字符集'.它将匹配[和之间的任何字符]

另外,这个应用程序非常适合学习正则表达式! http://regexr.com/

祝你今天愉快!:d


Ric*_*ton 5

使用somestartsWith方法。

 punctuations.some(function(character) {
     return string.startsWith(character)
});
Run Code Online (Sandbox Code Playgroud)

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/some

some() 方法测试数组中的某些元素是否通过所提供函数实现的测试。或者你也可以使用正则表达式

/[.,:!?]/.test(string.charAt(0))
Run Code Online (Sandbox Code Playgroud)