Javascript 正则表达式只匹配每个单词都大写的字符串,除了“quot;“在”中&引用;“的;
我试图使用正则表达式(javascript)只匹配每个单词都大写的字符串,除了允许小写的两个单词(“in”,“of”) 例如:Javascript 正则表达式只匹配每个单词都大写的字符串,除了“quot;“在”中&引用;“的;,javascript,regex,Javascript,Regex,我试图使用正则表达式(javascript)只匹配每个单词都大写的字符串,除了允许小写的两个单词(“in”,“of”) 例如: 敏捷的棕色狐狸跳跃[传球] 敏捷的棕色狐狸 跳转[失败] 敏捷的棕色狐狸跳跃[失败] 快速棕色 狐狸跳跃[传球] 快跑的棕色狐狸[经过] 我发现了一个正则表达式,我弗兰肯斯坦对它的大写部分进行了“某种”处理: ^\b(?:[A-Z]\w+\b(?:\s*)?)+$ 但是,我不知道如何修改它以允许示例4和5 谢谢你的帮助,我是第一次来 Regex,并不是所有问题的解决方
^\b(?:[A-Z]\w+\b(?:\s*)?)+$
但是,我不知道如何修改它以允许示例4和5
谢谢你的帮助,我是第一次来 Regex,并不是所有问题的解决方案,我认为最好在这种情况下编写如下内容:
let语句=[
“敏捷的棕色狐狸跳跃”,
“敏捷的棕色狐狸跳跃”,
“敏捷的棕色狐狸跳跃”,
“狐狸的敏捷跳跃”,
“敏捷的棕色狐狸”
];
const validateContent=(句子)=>{
让单词=句子。拆分(“”);
返回单词。每个(单词=>{
返回单词[0]==单词[0]。toUpperCase()
||['in','of']包括(单词);
});
}
句子。forEach(句子=>{
log(句子“=>”,validateContent(句子));
});代码>您可以使用您的模式,如果您还想匹配单个大写字符,可以选择重复单词chars,并对希望允许的小写单词使用替换
然后可以重复前面有1个或多个空格字符的相同部分
^(?:[A-Z]\w*|in|of)(?:\s+(?:[A-Z]\w*|in|of))*$
模式匹配:
^
字符串的开头
(?:[A-Z]\w*| in | of)
匹配大写字符A-Z和可选单词字符
(?:
非捕获组
\s+
匹配1+空格字符
(?:[A-Z]\w*| in | of)
匹配大写字符A-Z和可选单词字符
)*
关闭非捕获组并可选地重复
$
字符串结尾
const模式=/^(?[A-Z]\w*| in | of)(?:\s+(?:[A-Z]\w*| in | of))*$;
[
“敏捷的棕色狐狸跳跃”,
“敏捷的棕色狐狸跳跃”,
“敏捷的棕色狐狸跳跃”,
“狐狸敏捷的棕色跳跃”,
“敏捷的棕色狐狸”,
].forEach(s=>console.log(pattern.test)`${s}[PASS]`:`${s}[FAIL]`)
除了弗兰肯斯坦的尝试,OP对RegExp
(JavaScript)的实际了解有多少?已经足够另一种方法/尝试了吗?谢谢,这是我的第二次尝试,但明显有缺陷:^\b(?[A-Zorf]\w++\b(?:\s*)?)+$快速棕色狐狸的怎么样?@georg,它也在工作,有什么问题吗?