2014-09-30 107 views
1

我正在努力使用HTML5模式属性来验证其输入可以是以下所列类型的表单字段。要检查配对的单引号/双引号/大括号的HTML5模式

  • 计算器,stackexchange,谷歌,搜索引擎
  • 计算器,stackexchange, '谷歌搜索',搜索引擎, “奥巴马”
  • 马哈拉施特拉(孟买-400060),stackexchange,'谷歌搜索”,搜索引擎, “奥巴马”

我已经使用了图案属性[A-ZA-Z0-9' “ - ()] {1-250} 但无法验证配对的报价或大括号

任何帮助,高度赞赏

杰脉轮

+1

我不确定你需要什么帮助。你需要一个匹配诸如'stackoverflow','search-engine','google search'',但不是''google search''或者''Obama'的东西的正则表达式吗? – 2014-09-30 10:00:54

+1

不,我想要一个可以匹配所有这些标准的正则表达式,包括成对的括号和引号。 正则表达式应该是上述情况属实,但应该是 stack'overflow,stackexchange,谷歌,搜索引擎 计算器,stackexchange,“谷歌搜索”,搜索引擎,“奥巴马”,”这种情况下假 马哈拉施特拉邦(孟买,(400060),stackexchange,“谷歌搜索”,搜索引擎,“奥巴马” 也就是说奇不带引号或坏括号关闭。 – 2014-09-30 13:13:46

回答

1

这就是你不能处理成对字符的正则表达式的基本限制之一。你需要一个完整的语法。

基本上,你将需要类似于递归规则:

expression :- '(' expression ')' 
      | '{' expression '}' 
      | '"' expression '"' 
      | ... 

所以,你需要做的这种验证在JavaScript本身,而不是。

+1

感谢manuBriot的见解,但我试图使用HTML5模式属性 – 2014-09-30 13:18:45

+0

不可以,您可以在不使用JavaScript的情况下使用它,它只是一个使用管道(|)(?:pattern | pattern | pattern | ...)的非常长的正则表达式。 – 2016-05-12 05:11:20