3

我尝试制作一个正则表达式来验证 javascript 中的表单。RegEx 应该只允许字母逗号和标点符号。例如我有这个字符串:

Hi, this is a test of RegEx. Does it work

我试过以下

/^[A-Za-z0-9,. ]{3,50}$/; 

但这似乎不起作用。解决方案?

谢谢!

编辑:

这是我的代码:

<script type="text/javascript">
  var RE_SSN = /^[A-Za-z0-9,. ]{3,50}$/; 

  function checkSsn(ssn){

   if (RE_SSN.test(ssn)) {
  alert("OK"); 
  javascript:addAppointment(document.forms[0])

    } else {
       alert("NO!");
   }
  }
  </script>

<div id="r">
    <label for="receipt">Receipt</label><input type="checkbox"     name="receipt" value="1"/>
</div>

<input type="button" value="Post it" onclick="checkSsn(this.form.content.value);"/>
4

2 回答 2

3

您可能需要转义“。” 因为这是正则表达式中的特殊字符。

/^[A-Za-z0-9,\. ]{3,50}$/; 

实际上可能不是。尝试使用http://www.regextester.com/ - 无论如何我都能让它工作。您能否向我们展示您如何实现此功能的完整代码?

于 2012-04-11T12:12:06.620 回答
1

如果您不想在该字段的开头使用标点符号:

/^[a-zA-Z]+(([\'\,\.\- ][a-zA-Z ])?[a-zA-Z]*)*$/

这也允许空格(一种情况是姓氏 - De La Hoya 或 O'Doul)

于 2012-05-10T16:57:56.970 回答