使用正则表达式计算字符串中的fullstops和逗号的数量

时间:2016-05-22 10:03:02

标签: javascript jquery regex

我正在尝试使用正则表达式计算句子中的句号和逗号的数量。我正在使用的代码如下。

var commaCount = $("#text-input").val().match(new RegExp(",", "g")).length;
var fullStopCount = $("#text-input").val().match(new RegExp(".", "g")).length;

这适用于逗号计数,但是对于句号计数,它会计算句子中的每个字符。任何人都可以解释为什么会发生这种情况以及如何解决它。

请参阅下面的完整代码:



var commaCount = $("#text-input").val().match(new RegExp(",", "g")).length;
var fullStopCount = $("#text-input").val().match(new RegExp(".", "g")).length;

$(".comma-count").text(", : " + commaCount);
$(".fullstop-count").text(". : " + fullStopCount);

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<textarea id="text-input" name="textarea" rows="5" cols="50">There should only be, one full stop.</textarea>

<p class="comma-count"></p>
<p class="fullstop-count"></p>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:2)

您需要使用.转义\\,因为.匹配除了正则表达式中的换行符之外的任何单个字符。

var fullStopCount = $("#text-input").val().match(new RegExp("\\.", "g")).length;

或使用正则表达式

var fullStopCount = $("#text-input").val().match(/\./g).length;

&#13;
&#13;
var commaCount = $("#text-input").val().match(new RegExp(",", "g")).length;
var fullStopCount = $("#text-input").val().match(new RegExp("\\.", "g")).length;

$(".comma-count").text(", : " + commaCount);
$(".fullstop-count").text(". : " + fullStopCount);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<textarea id="text-input" name="textarea" rows="5" cols="50">There should only be, one full stop.</textarea>

<p class="comma-count"></p>
<p class="fullstop-count"></p>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

尝试以下:

var fullStopCount = $("#text-input").val().match(new RegExp(/\./g)).length;
var commaCount = $("#text-input").val().match(new RegExp(/\,/g)).length;