Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/431.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何检查输入字段是否包含有效文本而不是表单中的随机字符?_Javascript_Forms_Validation - Fatal编程技术网

Javascript 如何检查输入字段是否包含有效文本而不是表单中的随机字符?

Javascript 如何检查输入字段是否包含有效文本而不是表单中的随机字符?,javascript,forms,validation,Javascript,Forms,Validation,我想验证订阅者是否以某种形式键入有意义的英文文本,而不是像“jaghdjaggfsg”这样的随机字符 对于“胡说八道”,我只是指随机字符、点/数字/空格、四个或更多的辅音等等。我只是在寻找不重新发明轮子的方法或正则表达式模式 例如,对于提交活动: function validateForm() { var x = document.forms["myForm"]["fname"].value; if (x == "jaghdjagqfsg

我想验证订阅者是否以某种形式键入有意义的英文文本,而不是像“jaghdjaggfsg”这样的随机字符

对于“胡说八道”,我只是指随机字符、点/数字/空格、四个或更多的辅音等等。我只是在寻找不重新发明轮子的方法或正则表达式模式

例如,对于提交活动:

function validateForm() {
  var x = document.forms["myForm"]["fname"].value;
  if (x == "jaghdjagqfsg") {
    alert("Please answer the question");
    return false;
  }
}

正如我在评论中提到的,首先我们必须定义什么是“无意义”文本。因为系统很难知道,除非我们知道什么是需要的,什么是不需要的某种模式


因此,您可以提出允许使用或不允许使用的单词词典,或者找到一个与正则表达式匹配的通用模式,以过滤或接受有效的用户名。

正如我在评论中提到的,首先我们必须定义什么是“无意义”文本。因为系统很难知道,除非我们知道什么是需要的,什么是不需要的某种模式


因此,你可以编一本允许使用或不允许使用的单词词典,或者找出一个与正则表达式匹配的通用模式,过滤掉或接受一个有效的用户名。

我的想法是:我们了解了英语中字母的典型频率。然后我们将这些频率与输入文本的频率进行比较。(这可以通过计算“”的大小来实现)。如果频率偏离某个阈值,我们将假定输入文本是不可理解的英语。我用一些复制粘贴的诗来获得正常字母频率的感觉-你可以简单地为自己查找一个更确定的频率列表。输入的字符越多,我使用的阈值就越严格(大多数胡言乱语都被过滤掉,最合理的句子也被允许)。右下角的框表示输入文本的
当前分数
/
要被视为有效的阈值

let textElem=document.querySelector('textarea');
设pElem=document.querySelector('p');
让sampleText=`
向你欢呼,快乐的灵魂!你从来不是一只鸟,从天上或在天上附近,把你饱满的心倾注在丰富的未经深思熟虑的艺术中。
你从地上跳得越来越高,像一团火云;你翱翔在深蓝的天空中,歌唱着,一直在歌唱着。
在沉入太阳的金色闪电中,你在明亮的云彩上漂浮和奔跑;就像一种未受抑制的欢乐,它的比赛才刚刚开始。
淡紫色甚至在你的飞翔周围融化;像天上的一颗星,在宽阔的白昼里,你是看不见的,但我却听到你刺耳的喜悦,
银色球体上的箭像箭一样锋利,明亮的灯光在白色的黎明中变窄,直到我们几乎看不见为止,我们感觉到它就在那里。
你的声音响彻大地和空气,就像夜晚光秃秃的时候,月亮从一朵孤寂的云彩中射出光芒,天堂被淹没。
我们不知道你是什么;你最像什么?从彩虹的云彩中流出的水滴,不如从你面前倾泻的旋律之雨那样明亮。
就像一个隐藏在思想之光中的诗人,不请自来地唱着赞美诗,直到世界对它所没有注意到的希望和恐惧产生同情:
就像一个出生在宫殿塔楼的高贵少女,在秘密的时刻用如爱般甜美的音乐抚慰她充满爱的灵魂,这音乐溢满了她的心扉:
就像露珠谷中的金色萤火虫,把它未经捆绑的真实色调散布在花草之间,挡住了视线:
就像一朵玫瑰在它自己的绿叶中被温暖的风吹散,直到它发出的香味使那些长着翅膀的笨贼们带着太多的甜味昏倒:
春雨的声音落在闪烁的草地上,雨声唤醒了花朵,一切都是欢乐的,清晰的,清新的,你的音乐超越了一切。
精灵或小鸟,请告诉我们,你的思想是多么甜美:我从未听过对爱情或美酒的赞美,因为它会让人如此神魂颠倒。
合唱赞美诗,或凯旋圣歌,与你的相匹配,将是一种空洞的炫耀,一种我们感到有某种隐藏的欲望的东西。
你快乐的源泉是什么?什么样的田野,什么样的波浪,什么样的山脉?天空或平原的形状是什么?你自己的爱是什么?什么是对痛苦的无知?
带着你那清晰而强烈的快乐,疲倦是不可能的:烦恼的阴影从未靠近你:你爱着,但谁也不知道爱的悲伤的满足感。
无论是醒着还是睡着,死亡的你都必须相信事情比我们凡人的梦想更真实、更深刻,或者你的音符怎么会在这样一条水晶流中流动?
我们环顾前前后后,渴望得到不存在的东西:我们最真诚的笑声中带着些许痛苦,令人忧心忡忡;我们最甜美的歌曲是那些诉说最悲伤思想的歌曲。
然而,如果我们能够蔑视仇恨、骄傲和恐惧;如果我们生来就不流泪,我不知道我们将如何接近你的喜悦。
大地的蔑视者啊,你对诗人的技巧,胜过一切悦耳的声音,胜过一切书本上的珍宝!
教我一半你的大脑必须知道的快乐,我的嘴唇会流出如此和谐的疯狂,那时全世界都应该听,就像我现在在听一样。
`;
让getCharFrequency=text=>{
//每个字符在作为字符的键下增加“f”中的值
设f={};
对于(text.toLowerCase()的let char)f[char]=(f.hasOwnProperty(char)?f[char]:0)+1;
//通过将每个值除以长度来规范化此向量
//请注意,“vectorDiffMag”计算第二个
//向量是`{}`(“0-向量”)
设len=vectorDiffMag(f,{});
对于(f中的k)f[k]=f[k]/len;
返回f;
};
设vectorDiffMag=(频率1,频率2)=>{
//返回向量差的大小
//它本质上是平方的平方根