我有一个需要帮助的问题,我试图检查某个字符串是否只包含A-Z,连字符,撇号和重音符号(例如变音符号等)。
我有以下但是没有用。
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,但似乎都不适合我!
有人知道我做错了吗?
答案 0 :(得分: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()">