【问题标题】:Detecting if period exists in a string检测字符串中是否存在句点
【发布时间】:2013-05-02 14:58:22
【问题描述】:

如果这似乎是一个愚蠢的问题,我深表歉意,但是我将如何搜索字符串以查看它是否包含句点?我试过搜索:

var p="This is text without a period, What now?"

alert(p.search("."));

我的印象是它应该返回 -1,因为那句话中没有句点。但是,它总是返回 0。

我错过了什么吗?

【问题讨论】:

  • 仅供参考,search 方法是正则表达式搜索,而不是字符匹配。在正则表达式中,. 匹配 任何 字符,包括第一个“T”。
  • 啊啊啊,这就解释了!谢谢你。

标签: javascript jquery search


【解决方案1】:

有很多方法可以做到这一点,我可能会使用indexOf() 来查看字符串中是否存在字符:

alert( p.indexOf(".") != -1 ); // true or false

根据 MDN,search()“执行搜索正则表达式和此 String 对象之间的匹配项。”,即:

alert( p.search(/\./) );

这会给你-1,句号在正则表达式中有特殊含义,必须转义。

【讨论】:

  • 太棒了。谢谢。我忘记了 indexOf 函数...一旦他们让我将其标记为正确...
  • @Yatrix 它很快就被投票了,因为有 7 个其他人输入了相同的答案,他只是以最快的速度点击提交。 :)
  • @KevinB 还是让我嫉妒得发狂!
  • @Yatrix 写出比;)更好的答案
  • @Yatrix - 通常对一般问题的简单答案会产生更多分数,有时您可以在答案上工作很长时间,试图弄清楚一些事情,然后您终于明白了,而没有其他人已经回答了,你最终没有得到一个赞成票,因为每个人都在前进,而 OP 甚至懒得接受它。就是这样!
【解决方案2】:

如果你想坚持正则表达式,你需要转义.,因为它是一个特殊的正则表达式字符。要在 JavaScript Regex 中转义点,您需要将其“转换”为字符类。这是通过[] 完成的。

alert(p.search("[.]"));

Working fiddle

【讨论】:

    【解决方案3】:
    猜你喜欢
    • 2018-07-17
    • 2010-09-22
    • 2022-11-19
    • 2020-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多