我有一个ex "adlkup.db.com"
字符串,我想验证" .com"的字符串。在字符串的末尾。
var x = "adlkup.db.com";
所以我正在尝试像
这样的东西/.com$/.test(x)
并且.
正在解释一些其他正则表达式,它找到一个单独的字符,除了换行符或行终止符
答案 0 :(得分:3)
正则表达式中的句点与任何字符匹配。
要使其成为文字,您需要escape它:
/\.com$/.test('stackoverflow.com'); // true
/\.com$/.test('stackoverflowcom'); // false
或者,作为Racil Hilan points out in the comments,您还可以使用.lastIndexOf()
method进行检查:
var string = 'stackoverflow.com';
string.lastIndexOf('.com') === string.length - 4; // true
或使用.substr()
method:
'stackoverflow.com'.substr(-4) === '.com'; // true
答案 1 :(得分:2)
答案 2 :(得分:1)
阅读完评论后,我认为你可以比正则表达式更好地使用它:
var value1 = "adlkup.db.com";
var value2 = "adlkup.db.com.w3Schools";
var value3 = ".com";
document.write(value1 + " " + endWithCom(value1) + "<br/>");
document.write(value2 + " " + endWithCom(value2) + "<br/>");
document.write(value3 + " " + endWithCom(value3) + "<br/>");
function endWithCom(text){
if(text.length < 5)
return false;
return (text.substr(-4) == ".com");
}
&#13;
您可以轻松将其转换为通用功能,这样您就可以将任何结尾传递给它:
var value1 = "adlkup.db.com";
var value2 = "adlkup.db.com.w3Schools";
var value3 = ".com";
var value4 = "adlkup.db.org";
document.write(value1 + " " + endWithButNotEqual(value1, ".com") + "<br/>");
document.write(value2 + " " + endWithButNotEqual(value2, ".com") + "<br/>");
document.write(value3 + " " + endWithButNotEqual(value3, ".com") + "<br/>");
document.write(value4 + " " + endWithButNotEqual(value4, ".org") + "<br/>");
function endWithButNotEqual(text, ending){
if(text.length <= ending.length)
return false;
return (text.substr(-ending.length) == ending);
}
&#13;