RegEx允许英语和法语字母表

时间:2015-12-29 19:35:36

标签: javascript

我正在尝试编写一个小的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");
}

我做错了什么? 这是一个小提琴

https://jsfiddle.net/sghoush1/e36jquLf/1/

2 个答案:

答案 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");
}