【问题标题】:How can I count dot in the string? [duplicate]如何计算字符串中的点? [复制]
【发布时间】:2018-06-17 03:43:39
【问题描述】:

我正在尝试计算字符串中点 . 的数量。我正在尝试使用match() 函数来计算点,但它不起作用。

我尝试了相同的脚本来计算其他字符串、字母和-,它们工作正常。我有以下字符串

var string = "How are you doing . - today? You . - are such a nice person!";

我尝试了以下脚本

var num = string.match(/-/g).length; // output 2
var num = string.match(/are/g).length; // output 2
var num = string.match(/a/g).length; // output 4
var num = string.match(/./g).length; // output 60

有人可以指导我为什么它match 功能不支持. 以及我该如何计算它。我很感激。

【问题讨论】:

  • 点在正则表达式中有特殊含义,它可以匹配任何字符。转义点...string.match(/\./g).length
  • @gurvinder372 这对我有用,谢谢+1
  • 你可以使用这个技巧string = "How are you doing . - today? You . - are such a nice person!.";console.log(string.split('.').length);
  • @Mr.Developer,或者在我的回答中使用brackets

标签: javascript


【解决方案1】:

转义.

var string = "How are you doing . - today? You . - are such a nice person!";
var num = string.match(/\./g).length;
console.log(num);

【讨论】:

    【解决方案2】:

    . 用于正则表达式并匹配单个字符,而不关心哪个字符。您需要转义点,例如string.match(/\./g).length\ 是转义符,表示将点视为真正的.,而不是特殊的正则表达式含义。

    【讨论】:

    • 空字符串安全吗?
    • 空字符串,是的。如果字符串为 null,那么您需要先检查 string != null 以避免 NPE。
    【解决方案3】:

    点是正则表达式中的特殊字符,它与任何字符匹配。

    你必须使用 escape 点。

    var string = "How are you doing . - today? You . - are such a nice person!";
    var num = string.match(/\./g).length; // output 60
    console.log(num);

    另一种方法是使用brackets

    var num = string.match(/[.]/g).length; 
    

    【讨论】:

      猜你喜欢
      • 2021-05-19
      • 1970-01-01
      • 2018-02-08
      • 2012-11-30
      • 2016-09-03
      • 1970-01-01
      • 2019-06-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多