JavaScript正则表达式验证
JavaScript正则表达式验证,javascript,regex,Javascript,Regex,我正在尝试使用正则表达式验证字段名,以匹配JavaScript中的特定格式。 我需要输入类似以下内容的字符串: 字\字\字 所以输入的任何内容都不能为空,必须是三个用反斜杠隔开的单词 这就是我正在使用的代码,但我不确定模式的语法是否正确 function validateResourceName() { //get posted resource name value var inputString = document.getElementById("res
我正在尝试使用正则表达式验证字段名,以匹配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");
}
}
任何帮助都将不胜感激 您可以使用此
\w+\\\w+\\\w+
或
您只需使用此
\w+\\\w+\\\w+
或
如果“单词”是指大写或小写的英文字母a-z,则:
/^(?:[a-z]+\\){2}[a-z]+$/i
也就是说:
字符串的开头^
非捕获组(?:…)
一个或多个字母a-z(或a-z,因为末尾有[a-z]+
标志)。如果您还想允许一些其他字符,只需将它们添加到i
之后的z
。如果您想允许连字符,请向其添加[a-z]
(您需要反斜杠,这取决于您放置连字符的位置,因此我总是将其包括在内)。请注意,这是非常以英语为中心的,即使在英语中,有时人们也会用非英语字母来写借词,如résumé\-
反斜杠\\
重复两次{2}
- (然后是另一个词)
字符串结尾$
无效,因为范围无序([a-Z]
位于Z
之前)。如果它有效(或者如果您编写了a
),它将匹配[Z-a]
和Z
之间的一切,这不仅仅是a
和a-Z
a-Z
需要反斜杠,然后是斜杠\\/
是一种替代(这个或那个)|
是空白\s
/^(?:[a-z]+\\){2}[a-z]+$/i
也就是说:
字符串的开头^
非捕获组(?:…)
一个或多个字母a-z(或a-z,因为末尾有[a-z]+
标志)。如果您还想允许一些其他字符,只需将它们添加到i
之后的z
。如果您想允许连字符,请向其添加[a-z]
(您需要反斜杠,这取决于您放置连字符的位置,因此我总是将其包括在内)。请注意,这是非常以英语为中心的,即使在英语中,有时人们也会用非英语字母来写借词,如résumé\-
反斜杠\\
重复两次{2}
- (然后是另一个词)
字符串结尾$
无效,因为范围无序([a-Z]
位于Z
之前)。如果它有效(或者如果您编写了a
),它将匹配[Z-a]
和Z
之间的一切,这不仅仅是a
和a-Z
a-Z
需要反斜杠,然后是斜杠\\/
是一种替代(这个或那个)|
是空白\s
/^[a-z]+\\[a-z]+\\[a-z]+$/
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]+$/
//If the inputString is NOT a match
if (!pattern.test(inputString)) {
alert("not a match");
} else {
alert("match");
}
}
如果要允许单词匹配不区分大小写
`/^[a-z]+\\[a-z]+\\[a-z]+$/i`
如果你想对你定义的“单词”更宽泛一点,允许它由字母数字字符和下划线组成
`/^\w+\\\w+\\\w+$/i`
试试
/^[a-z]+\[a-z]+\[a-z]+$/
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]+$/
//If the inputString is NOT a match
if (!pattern.test(inputString)) {
alert("not a match");
} else {
alert("match");
}
}
如果要允许单词匹配不区分大小写
`/^[a-z]+\\[a-z]+\\[a-z]+$/i`
如果你想对你定义的“单词”更宽泛一点,允许它由字母数字字符和下划线组成
`/^\w+\\\w+\\\w+$/i`
这应该可以
^\w+\\\w+\\\w+$
在javascript中
if (/^\w+\\\w+\\\w+$/.test(subject)) {
// Successful match
} else {
// Match attempt failed
}
这应该可以
^\w+\\\w+\\\w+$
在javascript中
if (/^\w+\\\w+\\\w+$/.test(subject)) {
// Successful match
} else {
// Match attempt failed
}
试试这一个,看看正则表达式演示和代码演示
正则表达式
Javascript
function validateResourceName(string) {
var pattern = /(\w)*\\(?!\\)(\w)*\\(?!\\)(\w)*(?!\\)/g;
if (!pattern.test(string)) {
alert("not a match");
} else {
alert("match");
}
}
试试这一个,看看正则表达式演示和代码演示
正则表达式
Javascript
function validateResourceName(string) {
var pattern = /(\w)*\\(?!\\)(\w)*\\(?!\\)(\w)*(?!\\)/g;
if (!pattern.test(string)) {
alert("not a match");
} else {
alert("match");
}
}
\w
做的事情比他看起来想要的要多(包括数字等),这将包括数字和下划线。请看他们明确提到的wiki,以匹配我们应该使用的单词\w@raghavendra:wiki想要什么和OP想要什么不一定是一回事。特别是,下划线并不是英语中“单词”的一部分。拉格文德拉:哦,OP并没有考虑他们所说的“单词”,所以…(但说句公道话,可能不是下划线。)\w
做的事情比他看起来想要的要多(它包括数字等),这将包括数字和下划线。请参阅他们明确提到的wiki,以匹配我们应该使用的词\w@raghavendra:wiki想要什么和OP想要什么不一定是一回事。特别是,下划线并不是英语中“单词”的一部分。拉格文德拉:哦,OP并没有考虑他们所说的“单词”,所以…(但公平地说,可能不是下划线。)/^[a-zA-Z]+\/[a-zA-Z]+\/[a-zA-Z]+$/
将为您计算/^[a-zA-Z]+\/[a-zA-Z]+\/[a-zA-Z]+$/
将使用[a-Z]
在Chrome中获得无效的正则表达式。字符顺序不正确的范围class@RGraham:听到这个消息我很高兴。:-)是的,它必须是[Z-a]
才能得到正确的订单,因为Z
在a
之前。(我认为,其他语言中的一些正则表达式引擎只是悄悄地为您反转范围。)当然,Z-a
与a-Y
或b-Z
:-)不匹配我使用[a-Z]
在Chrome中获得了无效的正则表达式。字符顺序不正确的范围class@RGraham:听到这个消息我很高兴。:-)是的,它必须是[Z-a]
t