我正在设计一个带有用户数据输入的测验,该测验与可能的答案数组匹配。该网站具有响应能力,我想给移动用户更多的关于撇号的答案,因此他们不必将其键盘切换到特殊的符号布局,即:
电脑版本:
“那个家伙的滑雪板”-好的;
“那个家伙滑雪板”-失败
手机版:
“那个家伙的滑雪板”-好的;
“那个家伙滑雪板”-好的
到目前为止,我编写的代码:
var snowboardarr = ["that guy's snowboard"];
var snowboard = document.getElementById("snowboard");
var flag = false;
for (var i = 0; i < snowboardarr.length; i++)
{ if (snowboard.value.replace(/[^a-zA-Z0-9-=*@#№$%&^()"/]/g, '').toLowerCase() ==
snowboardarr[i].replace(/[^a-zA-Z0-9-=*@#№$%&^()"/]/g, '').toLowerCase()){flag = true;}
else if
(screen.width <= 650 && snowboard.value.replace(/[^a-zA-Z0-9-=*@#№$%&^()"/]/g, '').toLowerCase() ==
snowboardarr[i].replace(/[^a-zA-Z0-9-=*@#№$%&^()"/]/g, '').toLowerCase()){flag = true;}
}
if (flag) {snowboard.style.backgroundColor = "#83C183";}
else {snowboard.style.backgroundColor = "#E06969";}
我需要以某种方式从PC版本的regEx中排除“撇号”,并将其绑定到特定位置,即:
那家伙的滑雪板-好吧;
那家伙滑雪板'-失败
各位,有什么帮助吗?
最佳答案
您可以使用RegExp
构造函数根据屏幕大小来自定义可接受的字符范围。
尝试这个:
var snowboardarr = ["that guy's snowboard"];
var snowboard = document.getElementById("snowboard");
var flag = false;
var char_range = "a-zA-Z0-9-=*@#№$%&^()\"";
var char_range_desktop = char_range + "'";
var regex_desktop = new RegExp("[^" + char_range_desktop + "]", "g");
var regex_mobile = new RegExp("[^" + char_range + "]", "g");
for (var i = 0; i < snowboardarr.length; i++) {
if (screen.width > 650) {
flag = (is_answer_matching(regex_desktop)) ? true : false;
}
else {
flag = (is_answer_matching(regex_mobile)) ? true : false;
}
}
function is_answer_matching(re_device) {
return snowboard.value.replace(re_device, '').toLowerCase() == snowboardarr[i].replace(re_device, '').toLowerCase();
}
snowboard.style.backgroundColor = (flag) ? "#83C183" : "#E06969";
关于javascript - JavaScript Regex:PC版为撇号TRUE,移动版为FALSE,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39543612/