Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/458.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript正则表达式验证_Javascript_Regex - Fatal编程技术网

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,那么:

/^(?:[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