0

我正在尝试检查某个字符串是否仅包含 AZ、连字符、撇号和重音符号(例如变音符号等)。

我有以下,但它不工作。

var lastNameValidation = /^[a-zA-ZàèìòùÀÈÌÒÙáéíóúýÁÉÍÓÚÝâêîôûÂÊÎÔÛãñõÃÑÕäëïöüÿÄËÏÖÜŸçÇßØøÅåÆæœ]$/;

var customerFullName = (inputData.customerName).replace(/\s/g, "");

if (!(customerFullName.matches(lastNameValidation))) {
    inputValidation += 'Invalid characters in first or last name. Only alphabetic letters, apostrophe, accents and hypen characters allowed<br/>';
}

我已经从 customerFullName 中删除了空格,它似乎工作正常(我使用了一个警告框来检查)

我尝试了 .matches 和 .test,但似乎都不适合我!

我究竟做错了什么?

4

1 回答 1

0

将您的正则表达式更改为

 var lastNameValidation = /^[a-zA-ZàèìòùÀÈÌÒÙáéíóúýÁÉÍÓÚÝâêîôûÂÊÎÔÛãñõÃÑÕäëïöüÿÄËÏÖÜŸçÇßØøÅåÆæœ]+$/i

并使用 .match() 。.matches() 不适用于字符串正则表达式匹配。

http://www.w3schools.com/jsref/jsref_match.asp

var check = function() {

  var lastNameValidation = /^[a-zA-ZàèìòùÀÈÌÒÙáéíóúýÁÉÍÓÚÝâêîôûÂÊÎÔÛãñõÃÑÕäëïöüÿÄËÏÖÜŸçÇßØøÅåÆæœ]+$/i
  
  var custname = document.querySelector("#name").value;

  var customerFullName = custname.replace(/\s/g, "");

  if (!(customerFullName.match(lastNameValidation))) {
    alert('Invalid characters in first or last name. Only alphabetic letters, apostrophe, accents and hypen characters allowed<br/>');
  } else {
    alert("perfect")
  }
}
<input id="name">
<input type="button" value="check" onclick="check()">

于 2017-01-12T12:14:17.577 回答