regex JavaScript正则表达式验证

oipij1gg  于 2023-05-08  发布在  Java
关注(0)|答案(5)|浏览(156)

我尝试使用正则表达式验证字段名以匹配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");
      }
    }

任何帮助将非常感谢!!!

q1qsirdb

q1qsirdb1#

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

a8jjtwal2#

如果你说的单词是指大写或小写的英语字母a-z,那么:

/^(?:[a-z]+\\){2}[a-z]+$/i

上面写着:

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

你的表达问题是:

  • [a-Z]无效,因为范围无序(Za之前)。如果它有效的(或者如果您编写了[Z-a]),它将匹配Za之间的所有内容,而不仅仅是a-zA-Z
  • \\/需要一个反斜杠和一个斜杠
  • |是一个 * 交替 *(这个或那个)
  • \s是空白
drnojrws

drnojrws3#

你可以用这个\w+\\\w+\\\w+

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

new9mtju4#

这个应该可以了

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

在javascript中

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

gmxoilav5#

试试这个。代码演示请参见JSFiddle
Regex

/(\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");
  }
}

相关问题