如何计算用户在文本表单中输入的特定符号的数量



抱歉,如果这看起来像是一个新手问题,但我想知道是否有办法计算特定符号的数量,例如某人输入的 URL 样式格式的点或斜杠。

var regex = /https?://(www.)?[A-Za-z=:.]{1,12}.[A-Za-z]{1,6}b([-A-Za-z0-9%_+=?&//#]){1,250}/
var validx = regex.test(document.getElementById("webname").value);

这就是正则表达式以及我调用文本输入的方式。因此,我想知道是否有一种方法可以计算用户输入的符号数量。

我以为我可以调用包含检查器的函数,但它不起作用

function dotcheck()
{
var dots = detect.webname.value;
if (dots.indexOf(".") > 0){}

我认为您可以看到/计算那里的点数的功能

if (dotcheck = false){
messages.innerHTML = 'Safe';

我用来调用函数的 if 语句。

任何帮助将不胜感激,如果您还需要我提供任何其他帮助,请随时询问。

String中任何字符的计数只是String.match(RegExp)返回的匹配项数。

由于您特别提到了句点,并且这些是特殊的RegExp符号,因此您不能只为您的RegExp/./g。 你必须用来逃避它,就像这样:

/./g

附加到末尾的g标志表示获取所有匹配项,而不仅仅是第一个匹配项。

const string = 'https://stackoverflow.com/questions/62008355';
const slashes = ///g;
const count = string.match(slashes).length;
console.log(count); // 4 slashes

const string = 'https://stackoverflow.com/questions/62008355';
const periods = /./g;
const count = string.match(periods).length;
console.log(count); // 1 period

最新更新