我正在尝试编写一个小的javascript验证,以允许英语和法语字母表。这就是我有正则表达式的方法......但它返回的是假的。我在看这个
Check whether a string matches a regex
var string = "évaÀ";
var re = new RegExp("/[^a-zA-Z àâäèéêëîïôœùûüÿçÀÂÄÈÉÊËÎÏÔŒÙÛÜŸÇ]/");
if (re.test(string)) {
console.log("true");
} else {
console.log("false");
}
我做错了什么? 这是一个小提琴
答案 0 :(得分:1)
您希望^
位于括号内,并确保在字符串的开始^
和结束$
之间有任意数量的这些字符:
(您还需要删除"..."
,并且您不需要new RegEx
)
var string = "évaÀ";
var re = /^[a-zA-Z àâäèéêëîïôœùûüÿçÀÂÄÈÉÊËÎÏÔŒÙÛÜŸÇ]*$/
if (re.test(string)) {
console.log("true");
} else {
console.log("false");
}
// For the Demo-Input
function test(el) {
if (/^[a-zA-Z àâäèéêëîïôœùûüÿçÀÂÄÈÉÊËÎÏÔŒÙÛÜŸÇ]*$/.test(el.value)) {
el.style.background = "green"
} else {
el.style.background = "red"
}
}
<form>
<input type="text" oninput="test(this)" placeholder="test any string here" />
<input type="submit">
</form>
答案 1 :(得分:0)
你可以试试这个:
var string = "évaÀ"
if(string.match(/^[a-zA-Z àâäèéêëîïôœùûüÿçÀÂÄÈÉÊËÎÏÔŒÙÛÜŸÇ]+$/)){
console.log("true");
} else {
console.log("false");
}