只选择包含所有小写字符javascript的单词

时间:2015-11-22 15:32:36

标签: javascript regex

我正在尝试编写一个正则表达式,只匹配字符串中只包含非大写字母的单词,但无法弄明白。

实施例

var str = "What a wonderful Sunday Afternoon";

我已设法使用此正则表达式var str1 = str.match(/[A-Z][a-z]+/g)

匹配任何以大写字母开头的单词

此处str1返回[What, Sunday, Afternoon]

我现在要做的是编写一个返回awonderful的正则表达式。

3 个答案:

答案 0 :(得分:5)

你可以使用这个正则表达式。

\b([a-z]+)\b

演示:https://regex101.com/r/uQ6lT4/1

您当前的正则表达式[A-Z][a-z]+

说一个大写字母,然后是任意数量的小写字母。

如果没有[A-Z],您只需要查找全部小写字母,那么部分单词就会匹配。添加单词边界将确保值为一个单词(不包括带连字符的单词)。

答案 1 :(得分:4)

您不需要正则表达式。

只需将字符串拆分为空格,然后根据该字是否为小写来过滤数组。

Example Here

var string = "What a wonderful Sunday Afternoon";
var lowerCaseWords = string.split(' ').filter(function(word) {
  return word === word.toLowerCase();
});

console.log(lowerCaseWords);
// ["a", "wonderful"]

答案 2 :(得分:0)

你也可以使用以下方法

var string = "What a wonderful Sunday Afternoon";
string .split(' ').forEach(function(v,k){
if(/[a-z]/.test(v.charAt(0))){
console.log(v);
return v;
}
})

    var string = "What a wonderful Sunday Afternoon";
    string .split(' ').forEach(function(v,k){
    if(/[a-z]/.test(v.charAt(0))){
    console.log(v);
    return v;
    }
    })