Javascript检查value是否至少包含2个或更多的单词
javascript check if value has at least 2 or more words
我有一个字段,您输入您的名字并提交它。我想接收人们的名字和姓氏,要做到这一点,我需要检查值是否包含至少2个单词。这就是我现在使用的,但它似乎不起作用。
function validateNameNumber(name) {
var NAME = name.value;
var matches = NAME.match(/'b[^'d's]+'b/g);
if (matches && matches.length >= 2) {
//two or more words
return true;
} else {
//not enough words
return false;
}
}
str.trim().indexOf(' ') != -1 //there is at least one space, excluding leading and training spaces
简单的解决方案(不是100%可靠,因为"foo "返回4,正如@cookiemonster提到的):
var str = "Big Brother";
if (str.split(" ").length > 1) {
// at least 2 strings
}
更好的解决方案:
var str = "Big Brother";
var regexp = /[a-zA-Z]+'s+[a-zA-Z]+/g;
if (regexp.test(str)) {
// at least 2 words consisting of letters
}
您可以使用String.Split()方法:
function validateNameNumber(name) {
var NAME = name.value;
var values = name.split(' ').filter(function(v){return v!==''});
if (values.length > 1) {
//two or more words
return true;
} else {
//not enough words
return false;
}
}
如果要传递"John Doe"作为名称值,则值将等于{" John ", " Doe"}
http://www.w3schools.com/jsref/jsref_split.aspEdit:添加过滤器以删除空值。源码:从字符串数组中移除一个空字符串- JQuery
可能不是最好的解决方案(请参阅其他答案),但它显示了如何计算regexp匹配字符串的次数:
function validateNameNumber(name) {
var nameValue = name.value;
var regexp = /'b[^'d's]+'b/g;
var count = 0;
while (regexp.exec(nameValue)) ++count;
if (count >= 2) {
//two or more words
return true;
} else {
//not enough words
return false;
}
}
从您的代码片段
更改这一行var matches = NAME.match(/'b[^'d's]+'b/g);
var matches = NAME.match(/'S+/g);
或this,如果数字应该被排除
var matches = NAME.match(/'b([a-z]+)'b/gi);
侧面(有趣)注意:你的片段工作得很好。检查jsBin
我将通过运行for循环来检查是否有空格。
var correctFormat = false;
for (var i = 0; i = i < name.length; i++) {
if (name[i] === " ") {
correctFormat = true;
}
}
if (correctFormat === false) {
alert("You entered an invalid name");
return false;
} else {
return true;
}
如果名字没有空格,知道名字和姓氏之间有空格,它会alert("You entered an invalid name");
相关文章:
- 字母计数:返回重复字母数最多的第一个单词
- JavaScript Regex 将单词替换为其第一个字母,除非在括号内
- 当两个单独的单词被放在目标上时,使用Jquery获取一个值
- 在字符串列表中搜索任何出现的单词,如果单词的第一个字符匹配,则高亮匹配单词.Javascript正则表达式
- 我如何从字符串中选出第一个单词的第一个字母,然后再选出第二个单词
- Regex或javascript每X个连续单词中有一个单词
- Regex模式,用于检查字符串中每个单词的第一个字母(如果是Javascript中的大写字母)
- Regex目标特定单词基于两个起始行条件
- 测试字符串中的多个单词
- AJAX数据包含一个或多个单词.
- 输出包含3个单词的字符串中的前2个单词
- 两个单词之间的Javascript差异
- 如何根据 js 中每个单词的第 n 个字母按字母顺序排列列表
- 在两个位置显示数组中的随机单词
- PHP jQuery使用多个单词传递值
- 识别两个文本中的单词(if 语句在 for 循环中)
- 用于匹配带空格和不带空格的多个单词的正则表达式
- 查找并替换多个单词 JavaScript
- 查找表单输入的第一个单词
- 指定单词第一个字母的宽度