這是我的第一篇文章,我認爲答案是很容易的,但我不明白這一點:的Javascript正則表達式輸入驗證
我(嘗試)來構建shopify店,但我必須做出一些修改,並在這裏是我卡在哪裏的地方:
在我的產品頁上,我想包含<input type=text>
,這是必需的,只能是大寫字母,長度必須爲最小值。是1和最大。 10.我用html5模式嘗試過,但沒有奏效。我讀了一些東西,如果shopify主題包含ajax,它只是忽略了模式和必需的屬性(我不知道這是否屬實)。
所以我試圖使自己的職能:
$('#dein-text').on("change textInput input", function(evt) {
$(this).val(function (_, val) {
return val.toUpperCase();
});
});
這只是應該返回字符串爲大寫字母。
function checkText() {
var re = /(?=.*[A-Z]).{1,6}/;
if(re.test($('#dein-text').val())) {
$('#problem-bei-input').hide();
$('.add', $product).removeClass('disabled').removeAttr('disabled');
} else {
$('#problem-bei-input').show();
$('.add', $product).addClass('disabled').attr('disabled', 'disabled');
}
}
這個功能在輸入表格上的每一個變化執行: $('#dein-text').on("change textInput input", checkText);
這是不行的,因爲它消除殘疾類,如果有分鐘。 1個字母(它不檢查是否有6個以上)以及是否有一個大寫字母(如「HA11」不添加(.disabled)類)。
我希望我能描述我的問題是什麼。
謝謝你的幫助!
編輯:這是整個形式的.liquid代碼:
https://codepen.io/shawdyy/pen/PmOPWy
(我希望你能看到這對codepen,SRY我真的很新的東西Webdev的)
也張貼您的HTML代碼 – JYoThI
沒有'pattern =「[A-Z] {1,10}」'工作嗎? –
如果您需要匹配只包含1到10個大寫ascii字母的字符串,您需要'var re =/^ [A-Z] {1,10} $ /'。 –