我尝试使用正则表达式验证字段名以匹配JavaScript中的特定格式。
我需要输入的字符串类似于:
单词\单词\单词
所以输入的内容不能为空,必须是三个单词,中间用反斜杠隔开。
这是我正在使用的代码,但我不确定模式是否是正确的语法?!!
function validateResourceName() {
//get posted resource name value
var inputString = document.getElementById("resourceName").value;
//should be in the word\word\word format
var pattern=/[a-Z|/\\/|a-Z|/\\/|a-Z\s]/;
//If the inputString is NOT a match
if (!pattern.test(inputString)) {
alert("not a match");
}
else
{
alert("match");
}
}
任何帮助将非常感谢!!!
5条答案
按热度按时间q1qsirdb1#
试试
/^[a-z]+\\[a-z]+\\[a-z]+$/
如果要允许单词匹配不区分大小写;
如果你想更宽泛地定义一个单词,允许它包含字母数字字符和下划线;
a8jjtwal2#
如果你说的单词是指大写或小写的英语字母a-z,那么:
上面写着:
^
字符串开头(?:...)
非捕获组[a-z]+
一个或多个字母a-z(或A-Z,因为结尾有i
标志)。如果您还想允许一些其他字符,只需将它们添加到[a-z]
后的z
。如果你想允许使用连字符,可以添加\-
(你需要反斜杠,这取决于你把连字符放在哪里,所以我总是包含它)。请注意,这是非常以英语为中心的,即使在英语中,有时人们也会用非英语字母写借来的单词,例如简历。\\
反斜杠{2}
重复两次$
字符串结束你的表达问题是:
[a-Z]
无效,因为范围无序(Z
在a
之前)。如果它是有效的(或者如果您编写了[Z-a]
),它将匹配Z
和a
之间的所有内容,而不仅仅是a-z
和A-Z
\\/
需要一个反斜杠和一个斜杠|
是一个 * 交替 *(这个或那个)\s
是空白drnojrws3#
你可以用这个
\w+\\\w+\\\w+
或
new9mtju4#
这个应该可以了
在javascript中
gmxoilav5#
试试这个。代码演示请参见JSFiddle。
Regex
JavaScript