我正在寻找可验证重音符号的正则表达式,并且该表达式也不允许与重音符号不同的字符,并且不允许使用空格,但不允许字母以外的其他字符。我目前正在使用,但是空格出现错误。我该如何解决?
function cambiarNombre(nombre){
let regex = /^[a-zA-ZÀ-ÿ\u00f1\u00d1]+(\s*[a-zA-ZÀ-ÿ\u00f1\u00d1]*)*[a-zA-
ZÀ-ÿ\u00f1\u00d1]+$/g;
return regex.exec(nombre)[0];
}
console.log(cambiarNombre("UNA palabra ñoÑerías ")); //true
console.log(cambiarNombre("UNA palabra ñoÑerías*")); //false *
console.log(cambiarNombre("UN2A palabra1 5oÑerías")); //false 2 1 5
console.log(cambiarNombre("palabra2")); //false 2
console.log(cambiarNombre(" palabra2")); //false 2
console.log(cambiarNombre(" pálabña ")); //true
console.log(cambiarNombre("juan perez")); //true
console.log(cambiarNombre("juan pérez")); //true
console.log(cambiarNombre("juan")); //true
console.log(cambiarNombre("júan")); //true
允许重音符号,空格和字母。 谢谢
答案 0 :(得分:1)
要在所有位置匹配字母,重音符号和空格(除了开头的空格),可以使用以下正则表达式(实际上比您拥有的正则表达式更简单):
/^[ a-zA-ZÀ-ÿ\u00f1\u00d1]*$/g
这将在开始时选择所有不同的字母,并为以下字母加上相同的Space
。
请注意模式中的space
,如果要匹配所有White Space
,则可以改用\s
,
修改:
现在在任何位置都可以使用空格,但不需要。唯一的要求是所有字符必须是方括号中重复零次或多次的字符之一。