我想添加一个验证规则来验证Text,它应该是以下任何一个规则
日文字符(任意日文字母)=>北海道
字母(A-Z)=> Kantname
我写下了正则表达式,但它没有按预期工作
/^[a-zA-Z]+$|[\u3000-\u303F]|[\u3040-\u309F]|[\u30A0-\u30FF]|[\uFF00-\uFFEF]|[\u4E00-\u9FAF]|[\u2605-\u2606]|[\u2190-\u2195]|\u203B/g;
如果我在下面尝试返回 TRUE
console.log(pattern.test('北海道 <script>'));
答案 0 :(得分:1)
您正在以错误的方式使用锚点:您需要将所有字符类合并为一个单独的类并将锚点应用于此超类:
/^[a-zA-Z\u3000-\u303F\u3040-\u309F\u30A0-\u30FF\uFF00-\uFFEF\u4E00-\u9FAF\u2605-\u2606\u2190-\u2195\u203B]+$/
请参阅regex demo
var re = /^[a-zA-Z\u3000-\u303F\u3040-\u309F\u30A0-\u30FF\uFF00-\uFFEF\u4E00-\u9FAF\u2605-\u2606\u2190-\u2195\u203B]+$/;
var strs = ['北海道AB', 'Kantname', '北海道', '北海道 <script>'];
for (var s of strs) {
if (re.test(s)) {
console.log(s, " matches the regex");
} else {
console.log(s, " does NOT match the regex");
}
}
&#13;