代码在 jsfiddle 上有效但在我的网站上无效?
code work on jsfiddle but not on my website?
嘿,最近我在网上找到了一些代码,同时寻找一种可以在输入数字时识别信用卡类型的方法,我在 jsfiddle.net 上试用了代码,它似乎工作正常,直到我决定将代码复制并粘贴到一个空白的 .php 文件中,代码将会出现,我没有收到任何错误,但它只是不会执行它应该执行的操作。我是在错误的地方输入代码还是什么?
这是原始 JSfiddle 的 link:http://jsfiddle.net/ipsjolly/9whmL9u0/
这是我的 .php 文件:
function detectCardType(number) {
var re = {
electron: /^(4026|417500|4405|4508|4844|4913|4917)\d+$/,
maestro: /^(5018|5020|5038|5612|5893|6304|6759|6761|6762|6763|0604|6390)\d+$/,
dankort: /^(5019)\d+$/,
interpayment: /^(636)\d+$/,
unionpay: /^(62|88)\d+$/,
visa: /^4[0-9]{12}(?:[0-9]{3})?$/,
mastercard: /^5[1-5][0-9]{14}$/,
amex: /^3[47][0-9]{13}$/,
diners: /^3(?:0[0-5]|[68][0-9])[0-9]{11}$/,
discover: /^6(?:011|5[0-9]{2})[0-9]{12}$/,
jcb: /^(?:2131|1800|35\d{3})\d{11}$/
};
if (re.electron.test(number)) {
return 'ELECTRON';
} else if (re.maestro.test(number)) {
return 'MAESTRO';
} else if (re.dankort.test(number)) {
return 'DANKORT';
} else if (re.interpayment.test(number)) {
return 'INTERPAYMENT';
} else if (re.unionpay.test(number)) {
return 'UNIONPAY';
} else if (re.visa.test(number)) {
return 'VISA';
} else if (re.mastercard.test(number)) {
return 'MASTERCARD';
} else if (re.amex.test(number)) {
return 'AMEX';
} else if (re.diners.test(number)) {
return 'DINERS';
} else if (re.discover.test(number)) {
return 'DISCOVER';
} else if (re.jcb.test(number)) {
return 'JCB';
} else {
return undefined;
}
}
$(function(){
$(".ckthis").keyup(function(){
var thisNum = $(this).val();
console.log(thisNum);
$(".showThis").html(detectCardType(thisNum));
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.0/jquery.min.js"></script>
<input type="text" class="ckthis">
<div class="showThis"></div>
<br><br> SAMPLE TEST NUMBERS
<br><br> VISA:4539435089757850<br><br>
我看不到你包含了你的 JQuery 库。
将其放在代码中的某处(例如,在底部,<script>
标记上方)
<script src="https://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>
或者您可以 download 将整个图书馆本地化到您的计算机上,然后以这种方式引用它。
嘿,最近我在网上找到了一些代码,同时寻找一种可以在输入数字时识别信用卡类型的方法,我在 jsfiddle.net 上试用了代码,它似乎工作正常,直到我决定将代码复制并粘贴到一个空白的 .php 文件中,代码将会出现,我没有收到任何错误,但它只是不会执行它应该执行的操作。我是在错误的地方输入代码还是什么?
这是原始 JSfiddle 的 link:http://jsfiddle.net/ipsjolly/9whmL9u0/
这是我的 .php 文件:
function detectCardType(number) {
var re = {
electron: /^(4026|417500|4405|4508|4844|4913|4917)\d+$/,
maestro: /^(5018|5020|5038|5612|5893|6304|6759|6761|6762|6763|0604|6390)\d+$/,
dankort: /^(5019)\d+$/,
interpayment: /^(636)\d+$/,
unionpay: /^(62|88)\d+$/,
visa: /^4[0-9]{12}(?:[0-9]{3})?$/,
mastercard: /^5[1-5][0-9]{14}$/,
amex: /^3[47][0-9]{13}$/,
diners: /^3(?:0[0-5]|[68][0-9])[0-9]{11}$/,
discover: /^6(?:011|5[0-9]{2})[0-9]{12}$/,
jcb: /^(?:2131|1800|35\d{3})\d{11}$/
};
if (re.electron.test(number)) {
return 'ELECTRON';
} else if (re.maestro.test(number)) {
return 'MAESTRO';
} else if (re.dankort.test(number)) {
return 'DANKORT';
} else if (re.interpayment.test(number)) {
return 'INTERPAYMENT';
} else if (re.unionpay.test(number)) {
return 'UNIONPAY';
} else if (re.visa.test(number)) {
return 'VISA';
} else if (re.mastercard.test(number)) {
return 'MASTERCARD';
} else if (re.amex.test(number)) {
return 'AMEX';
} else if (re.diners.test(number)) {
return 'DINERS';
} else if (re.discover.test(number)) {
return 'DISCOVER';
} else if (re.jcb.test(number)) {
return 'JCB';
} else {
return undefined;
}
}
$(function(){
$(".ckthis").keyup(function(){
var thisNum = $(this).val();
console.log(thisNum);
$(".showThis").html(detectCardType(thisNum));
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.0/jquery.min.js"></script>
<input type="text" class="ckthis">
<div class="showThis"></div>
<br><br> SAMPLE TEST NUMBERS
<br><br> VISA:4539435089757850<br><br>
我看不到你包含了你的 JQuery 库。
将其放在代码中的某处(例如,在底部,<script>
标记上方)
<script src="https://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>
或者您可以 download 将整个图书馆本地化到您的计算机上,然后以这种方式引用它。