我正在尝试使用正则表达式计算句子中的句号和逗号的数量。我正在使用的代码如下。
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;
答案 0 :(得分:2)
您需要使用.
转义\\
,因为.
匹配除了正则表达式中的换行符之外的任何单个字符。
var fullStopCount = $("#text-input").val().match(new RegExp("\\.", "g")).length;
或使用正则表达式
var fullStopCount = $("#text-input").val().match(/\./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);
&#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;
答案 1 :(得分:0)
尝试以下:
var fullStopCount = $("#text-input").val().match(new RegExp(/\./g)).length;
var commaCount = $("#text-input").val().match(new RegExp(/\,/g)).length;