我在javascript中有这样的字符串:
var stringa = 'CONCATENATE("custom text 1", CHAR(10), "text", CHAR(10), "other text", CHAR(10), "another one", CHAR(10), "funny last string")';
我的目标是计算字符串内的子字符串,用,
分割,不包括CHAR(10)。不变的规则是:我需要计数的子字符串在" "
内部,因此在我的示例中有5个子字符串。
如何仅使用javascript或jquery做到这一点?
我已经找到了解决方案,但我认为还有一种更优雅的方法:
var total = stringa.match(/\"/g) || []).length / 2;
答案 0 :(得分:1)
您可以分割"
以获得返回数组的长度-1并除以2 ...
var stringa = 'CONCATENATE("custom text 1", CHAR(10), "text", CHAR(10), "other text", CHAR(10), "another one", CHAR(10), "funny last string")';
var temp = stringa.split('"');
var count = (temp.length - 1) / 2;
window.alert(count);
答案 1 :(得分:1)
您可以使用RegExp
:
var stringa = 'CONCATENATE("custom text 1", CHAR(10), "text", CHAR(10), "other text", CHAR(10), "another one", CHAR(10), "funny last string")';
var matches = stringa.match(/"([^"]+)"/g) || [];
console.log(matches);
var count = matches.length;
console.log(count);
答案 2 :(得分:0)
您可以找到所有出现的双引号,然后将其除以2。这就是您的单词数。
const stringa = 'CONCATENATE("custom text 1", CHAR(10), "text", CHAR(10), "other text", CHAR(10), "another one", CHAR(10), "funny last string")';
const countDoubleQuotes = [...stringa].reduce((count, current) => current === '"' ? count + 1 : count, 0);
const numberOfSubstrings = countDoubleQuotes / 2;
console.log(numberOfSubstrings)