首页 > 解决方案 > 用于验证 android App id 的 Android 正则表达式不完全正确

问题描述

我正在尝试验证 Android App ID 名称,我使用了这个正则表达式模式 -/com\.[a-z]+\.[a-z]+/这样做,但这仅验证文本com.example.com的模式,但从我的研究中我发现 Google play 上的一些应用程序的捆绑 ID 名称为例如eu.og.comau.gh.cc.com甚至com.example.jk.com,请问我如何使用 Javascript 中的正则表达式验证所有这些。

<script>
var android_prop = "com.example.com"; 
regexp =  /com\.[a-z]+\.[a-z]+/;
if (regexp.test(android_prop))
{
alert("Correct Android name");
} else {
alert("Void Android name");
}
</script>

标签: javascriptphpandroidjquery

解决方案


因此,在检查并进行了一些搜索之后,我想出了一个解决方案来解决 Javascript 和 PHP 中的正则表达式问题,以供将来可能遇到问题的人使用。

对于 JAVASCRIPT:

//var android_prop = $("#android_apps_text").val(); - uncomment this if you want the value from a textarea for validation and clean off next line
var android_prop = "com.example.com || eu.gh.ho.com"; //any android name
regexp =  /^[a-z][a-z0-9_]*(\.[a-z0-9_]+)+[0-9a-z_]$/i;
if (regexp.test(android_prop))
{ 
alert("Valid android app id.");
} else {
alert("Invalid android app id.");
}

对于 PHP:

//DO NOT CREATES MATCHES VARIABLE, COPY AND PASTE THE PHP CODE BELOW
$android_prop = "com.example.com || eu.gh.cc.com"; //matches all android pattern
$re = '/^[a-z][a-z0-9_]*(\.[a-z0-9_]+)+[0-9a-z_]$/i';
if (preg_match_all($re, $android_prop, $matches)){
echo "Valid android app ID";    
} else {
echo "Invalid android app ID";
}

推荐阅读