JavaScript正则表达式验证

时间:2015-08-14 07:54:26

标签: javascript regex


我尝试使用正则表达式验证字段名称以匹配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 个答案:

答案 0 :(得分:3)

如果用词来表示大写或小写的英文字母a-z,那么:

char*

那说:

  • /^(?:[a-z]+\\){2}[a-z]+$/i 字符串的开头
  • ^非捕获组
  • (?:...)一个或多个字母a-z(或A-Z,因为末尾有[a-z]+标志)。如果您还想允许其他一些字符,只需将其添加到i之后的[a-z]即可。如果你想允许连字符,添加z(你需要反斜杠,取决于你把连字符放在哪里,所以我总是包括它)。请注意,这是非常以英语为中心的,甚至在英语中,人们有时会用非英文字母写借用的单词,例如简历。
  • \-反斜杠
  • \\重复两次
  • (然后另一个字)
  • {2}字符串结尾

你的表达问题是:

  • $无效,因为范围无序([a-Z]Z之前)。如果 有效(或者您写了a),它会匹配[Z-a]Z之间的所有内容,这不是'只是aa-z
  • A-Z需要反斜杠然后斜杠
  • \\/替换(此或那个)
  • |是空白

答案 1 :(得分:1)

您可以使用此\w+\\\w+\\\w+

[a-zA-Z]+(\\[a-zA-Z]+){2}

答案 2 :(得分:1)

尝试/^[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`

答案 3 :(得分:0)

这应该这样做

^\w+\\\w+\\\w+$

在javascript中

if (/^\w+\\\w+\\\w+$/.test(subject)) {
    // Successful match
} else {
    // Match attempt failed
}

答案 4 :(得分:0)

试试这个,请参阅Regex fiddle进行正则表达式演示,Jsfiddle 进行代码演示

正则表达式

/(\w)*\\(?!\\)(\w)*\\(?!\\)(\w)*(?!\\)/g

的Javascript

 function validateResourceName(string) {
 var pattern = /(\w)*\\(?!\\)(\w)*\\(?!\\)(\w)*(?!\\)/g;
  if (!pattern.test(string)) {
    alert("not a match");
  } else {
    alert("match");
  }

}