আমি কীভাবে jquery দিয়ে ইনপুট ক্ষেত্রগুলি থেকে বিশেষ অক্ষরগুলিকে অবরুদ্ধ বা সীমাবদ্ধ করব?


114

Jquery সহ কোনও ইনপুট ক্ষেত্রে টাইপ করা থেকে আমি কীভাবে বিশেষ অক্ষরগুলি ব্লক করব?


একটি jQuery বৈধকরণ প্লাগইন ব্যবহার করুন , এবং শুধুমাত্র বর্ণানুক্রমিক অক্ষর অনুমতি দিন।
টমাস আসচান

উত্তর:


132

একটি নিয়মিত অভিব্যক্তি ব্যবহার করে একটি সাধারণ উদাহরণ যা আপনি নিজের পছন্দ অনুযায়ী যা করতে / দিতে অস্বীকার করতে পারেন।

$('input').on('keypress', function (event) {
    var regex = new RegExp("^[a-zA-Z0-9]+$");
    var key = String.fromCharCode(!event.charCode ? event.which : event.charCode);
    if (!regex.test(key)) {
       event.preventDefault();
       return false;
    }
});

49
এটি আটকানো পাঠ্যের জন্য কাজ করে না এবং ব্যবহারকারীকে ব্যাকস্পেস, তীর কী ইত্যাদির মতো অ-পাঠ্য কীগুলি থেকে বাধা দিতে পারে
বেনডাইট্রি

6
এটি ফায়ারফক্সে ব্যাকস্পেসের অনুমতি দেবে না
অ্যালেক্স

স্প্যানিশ শব্দের জন্য যেমন কাজ করে না: এভিয়ান (বিমান), আরবোল (গাছ) ইত্যাদি
নিকোস্কিপ

এটি সর্বশেষতম ফায়ারফক্স ব্রোভারে কাজ করে না, তবে ক্রোমে ভাল কাজ করছে
ফিনিক্স

এই সমাধানটি আমার জন্য বুটস্ট্র্যাপ-ট্যাগস ইনপুট উপাদানটিতে কাজ করে। পেস্টের সমস্যাটি সমাধান করার জন্য আপনি ইভেন্ট প্যারামিটার তালিকায় কেবল "পেস্ট" যুক্ত করতে পারেন: $ ('ইনপুট')। ('কীপ্রেস, পেস্ট' ', () => ........
জিম 22150

60

আমি এমন একটি উত্তর খুঁজছিলাম যা কেবলমাত্র আলফানিউমেরিক অক্ষরগুলিতেই ইনপুটকে সীমাবদ্ধ রাখে তবে তবুও নিয়ন্ত্রণের অক্ষর (যেমন, ব্যাকস্পেস, মুছুন, ট্যাব) এবং অনুলিপি + পেস্ট ব্যবহারের অনুমতি দেওয়া হয়। প্রদত্ত জবাবগুলির মধ্যে যেগুলির মধ্যে আমি এই সমস্ত প্রয়োজনীয়তা সন্তুষ্ট করার চেষ্টা করেছি, তাই আমি inputইভেন্টটি ব্যবহার করে নীচে উপস্থিত হয়েছি ।

$('input').on('input', function() {
  $(this).val($(this).val().replace(/[^a-z0-9]/gi, ''));
});

সম্পাদনা: রিনোগো মন্তব্যগুলিতে
যেমন উল্লেখ করেছেন, উপরের কোড স্নিপেট ইনপুট পাঠ্যের মাঝখানে টাইপ করার সময় কার্সারটিকে ইনপুটটির শেষের দিকে বাধ্য করে। আমি বিশ্বাস করি যে নীচের কোড স্নিপেট এই সমস্যার সমাধান করে।

$('input').on('input', function() {
  var c = this.selectionStart,
      r = /[^a-z0-9]/gi,
      v = $(this).val();
  if(r.test(v)) {
    $(this).val(v.replace(r, ''));
    c--;
  }
  this.setSelectionRange(c, c);
});

1
+1 আমি এইগুলির মতো উত্তর খুঁজছি উত্তরগুলি স্ক্রোল করছি বা আমি আমার নিজের উত্তর জমা দেব submit এই উত্তরটি তাত্ক্ষণিকভাবে অনুমোদিত নয় এমন কোনও অক্ষর ছাঁটাই করে দেয়! গ্রেট!
এমিলহেম

2
+1 আটকানো পাঠ্যের জন্য কাজ করে, এফএফের ব্যাকস্পেসে হস্তক্ষেপ করে এবং কীগুলি মুছবে না, এবং এর উপর নির্ভর করে না event.whichবা event.keycode! যদি আমি +10 করতে পারি!
রিনোগো

3
... তবে ক্রোম এবং আইই তে, আপনি যখন নতুন অক্ষরগুলি টাইপ করেন বা ইনপুট পাঠ্যের মাঝখানে ব্যাকস্পেস ব্যবহার করেন এবং কীগুলি মুছুন , কার্সরটি পাঠ্যের শেষে সরিয়ে দেওয়া হবে ...: / এর জন্য কি কোনও সহজ উপায় নেই? এই? এই কাজ করার জন্য আমি খুব খারাপভাবে চেয়েছিলাম!
রিনোগো

এত কাছে ... ক্রোম মোবাইলে এই কোডটির খুব অদ্ভুত আচরণ রয়েছে। প্রথম বর্ণটি টাইপ করা এবং ব্যাকস্পেসেও কর্সার লাফিয়ে যায়।
জুলিয়ানো

2
@ জুলিয়ানো আকর্ষণীয়, দেখে মনে হচ্ছে যে কার্সার / ক্যারেট বর্তমানে অবস্থিত তা নির্বিশেষে সিলেকশনস্টার্টটি সর্বদা ক্রোম মোবাইলে 0 ফেরত দেয়। আমি নিশ্চিত (এখনও) এটি যদি কোনও বাগ বা অভিযুক্ত আচরণ হয়। আমি বর্তমানে বিষয়টি নিয়ে গবেষণা করছি এবং আমার উত্তর আপডেট করব বা আমি আরও শিখলে এখানে মন্তব্য করব।
রেক্সম্যাক

48

সংক্ষিপ্ত উত্তর: 'কীপ্রেস' ইভেন্টটি প্রতিরোধ করুন:

$("input").keypress(function(e){
    var charCode = !e.charCode ? e.which : e.charCode;

    if(/* Test for special character */ )
        e.preventDefault();
})

দীর্ঘ উত্তর: jquery.lphanum এর মতো একটি প্লাগইন ব্যবহার করুন

সমাধান বাছাই করার সময় কয়েকটি বিষয় বিবেচনা করতে হবে:

  • পাঠ্য পাঠ্য
  • ব্যাকস্পেস বা এফ 5 এর মতো নিয়ন্ত্রণের অক্ষরগুলি উপরের কোড দ্বারা প্রতিরোধ করা যেতে পারে।
  • é, í, ä ইত্যাদি
  • আরবি বা চীনা ...
  • ক্রস ব্রাউজার সামঞ্জস্য

আমি মনে করি এই অঞ্চলটি তৃতীয় পক্ষের প্লাগইন ব্যবহার করে ওয়ারেন্ট দেওয়ার পক্ষে যথেষ্ট জটিল। আমি উপলভ্য বেশ কয়েকটি প্লাগইন চেষ্টা করেছি কিন্তু সেগুলির প্রত্যেকটির সাথে কিছু সমস্যা পেয়েছি তাই আমি এগিয়ে গিয়ে jquery.lphanum লিখেছি । কোডটি এর মতো দেখাচ্ছে:

$("input").alphanum();

বা আরও সূক্ষ্ম নিয়ন্ত্রণের জন্য কিছু সেটিংস যুক্ত করুন:

$("#username").alphanum({
    allow      : "€$£",
    disallow   : "xyz",
    allowUpper : false
});

আশা করি এটা সাহায্য করবে.


1
অসাধারণ স্টাফ ম্যান, দুর্দান্ত। আমাকে কেবল স্ল্যাশ চর ('/') সক্ষম / অক্ষম করার জন্য একটি বিকল্প যুক্ত করতে হয়েছিল কারণ সেটি allowসেটিংসে রাখার সময় এটি কাজ করে না । তবে এটি jquery প্লাগইনগুলির সৌন্দর্য, আপনার প্রয়োজন অনুসারে আপনি এগুলি পরিবর্তন করতে পারেন। ধন্যবাদ!
অ্যাড্রিয়ান মেরিনিকা

ধন্যবাদ অ্যাড্রিয়ান বিটিডব্লিউ, আমি কেবল allowবিকল্পটি ব্যবহার করে স্ল্যাশ সক্ষম করার চেষ্টা করেছি এবং এই কোডটি ব্যবহার করে এটি আমার পক্ষে ঠিক কাজ করেছে: $('#firstName').alphanum({allow: "/"});আপনি আরও তথ্য সরবরাহ করতে পারেন এমন কোনও সুযোগ? দস্তাবেজগুলিতে কোনও বাগ বা সমস্যা থাকলে এটি ঠিক করে দেওয়া ভাল to চিয়ার্স
কেভশেদী

হাই কেভশিদী, এটি পরীক্ষা করার জন্য সময় দেওয়ার জন্য ধন্যবাদ। দুঃখিত আমি এটি যথেষ্ট পরিষ্কার করতে পারেনি। সমস্যাটি ছিল আমারও ছিল allowOtherCharSets: falseএবং allowCaseless: false। এগুলি সেট করা সেটিংসে হস্তক্ষেপ করে allow। আমার দৃষ্টিকোণ থেকে, আমি মনে করি যে allowবিকল্পটি অন্যান্য সমস্ত বিকল্প (যেমন allowOtherCharSetsবা allowCaseless) ভেটো করা উচিত । সুতরাং আপনি যদি allowবিকল্পটিতে একটি অক্ষর নির্দিষ্ট করে থাকেন তবে কনফিগারেশন অবজেক্টে সেট করা অন্যান্য বিকল্প নির্বিশেষে এটিকে অনুমতি দেওয়া উচিত। একই জন্য যায় disallow। তবে এটি কেবল আমার মতামত। :) আবার চিয়ার্স! :)
অ্যাড্রিয়ান মেরিনিকা

গুড পয়েন্ট অ্যাড্রিয়ান। আমি অগ্রণী হয়েছি allowএবং disallowউচ্চতর অগ্রাধিকার পেতে V1.0.6 এ একটি সমাধান প্রকাশ করেছি । এটি # 7 ইস্যুতে লগ ইন । আশা করি এটি সহায়তা করে
কেভশিদী

6
"তাই আমি এগিয়ে গিয়ে jquery.lphanum লিখেছিলাম" দুর্দান্ত!
ফেলিক্স

14

এইচটিএমএল 5 এর প্যাটার্ন ইনপুট অ্যাট্রিবিউট ব্যবহার করুন!

<input type="text" pattern="^[a-zA-Z0-9]+$" />

11
যদিও এই সমাধানটি অনাকাঙ্ক্ষিত অক্ষরগুলি জমা দেওয়া থেকে বাধা দেয়, এটি অনাকাঙ্ক্ষিত অক্ষরগুলিকে ইনপুট ক্ষেত্রে প্রবেশ করতে বাধা দেয় না
রেক্সম্যাক

1
ব্যবহারকারী এইচটিএমএল 5 ব্রাউজার ব্যবহার করছেন না এমন ঝুঁকিও রয়েছে।
ক্যাপ্টেন কেনপাচি

ইউএক্স অভিজ্ঞতা থেকে, একটি জিনিস যা অনেকে টাইপ করতে পারে তার মধ্যে সীমাবদ্ধ হওয়ার চেয়ে বেশি ঘৃণা করা হচ্ছে আপনাকে বলা হচ্ছে এটি পরে ভুল করেছে। - ইনপুট জোর করা ত্রুটি বার্তা এবং অবৈধ বিজ্ঞপ্তি হ্রাস করা হয়।
জুলিক্স

1
@ জুলিক্স এটি ঘটনা হিসাবে ঘটনা। কিছু ক্ষেত্র রয়েছে যা কেবলমাত্র সংখ্যা (দাম বা কোনও মুদ্রার পরিমাণ ইত্যাদি) হতে পারে যেখানে বর্ণানুক্রমিক অক্ষরের ইনপুট শোনার কোনও মানে হয় না। তবে হ্যাঁ আমার আসলে ওপি-র সমস্যার সমাধান ছিল না তবে ইউএক্স সমস্যার সাহায্য করার জন্য একটি দুর্দান্ত এবং সহজ উপায়।
কিপিট্রিয়াল

13

আপনার পাঠ্যবক্স:

<input type="text" id="name">

আপনার জাভাস্ক্রিপ্ট:

$("#name").keypress(function(event) {
    var character = String.fromCharCode(event.keyCode);
    return isValid(character);     
});

function isValid(str) {
    return !/[~`!@#$%\^&*()+=\-\[\]\\';,/{}|\\":<>\?]/g.test(str);
}

@Bhargav রাও আমি যে ইশারা জন্য অন্যান্য ডুপ্লিকেট পোস্ট মুছে ফেলা হয়েছে এবং আপনার ডিভাইসে এক পুনরায় পোস্ট কারণ এই এক আরো উপযুক্ত ছিল, ধন্যবাদ
শ্যান্ডলার

11

কোনও কিছুর অনুমতি দিতে বা বারণ করতে রিজেক্স ব্যবহার করুন। এছাড়াও, গৃহীত উত্তরের চেয়ে কিছুটা বেশি শক্তিশালী সংস্করণের জন্য, অক্ষরের সাথে কীগুলির সাথে কী (মূলত ব্যাকস্পেস, ট্যাব, তীরচিহ্নগুলি, মুছুন ইত্যাদি) সম্পর্কিত কোনও মূল মান নেই যা প্রথমে কীপ্রেস ইভেন্টের মধ্য দিয়ে যাওয়ার মাধ্যমে করা যেতে পারে এবং মান পরিবর্তে কীকোডের উপর ভিত্তি করে কীটি পরীক্ষা করুন।

$('#input').bind('keydown', function (event) {
        switch (event.keyCode) {
            case 8:  // Backspace
            case 9:  // Tab
            case 13: // Enter
            case 37: // Left
            case 38: // Up
            case 39: // Right
            case 40: // Down
            break;
            default:
            var regex = new RegExp("^[a-zA-Z0-9.,/ $@()]+$");
            var key = event.key;
            if (!regex.test(key)) {
                event.preventDefault();
                return false;
            }
            break;
        }
});

11

JQuery বর্ণমালা প্লাগইন একবার দেখুন। https://github.com/KevinSheedy/jquery.alphanum

//All of these are from their demo page
//only numbers and alpha characters
$('.sample1').alphanumeric();
//only numeric
$('.sample4').numeric();
//only numeric and the .
$('.sample5').numeric({allow:"."});
//all alphanumeric except the . 1 and a
$('.sample6').alphanumeric({ichars:'.1a'});

চিঠির জন্য একটি আছে? সাধারণত আমি কেবলমাত্র সংখ্যার জন্য ন্যান ব্যবহার করি (একটি জিপ কোড বা ফোনের মতো)

3

টেক্সটবক্সের অ্যানকিপ্রেস ইভেন্টে কিছু জাভাস্ক্রিপ্ট কোড লিখুন। প্রয়োজন অনুসারে আপনার পাঠ্যবক্সে চরিত্রকে অনুমতি এবং সীমাবদ্ধ করুন

function isNumberKeyWithStar(evt) {
    var charCode = (evt.which) ? evt.which : event.keyCode
    if (charCode > 31 && (charCode < 48 || charCode > 57) && charCode != 42)
        return false;
    return true;
}
function isNumberKey(evt) {
    var charCode = (evt.which) ? evt.which : event.keyCode
    if (charCode > 31 && (charCode < 48 || charCode > 57))
        return false;
    return true;
}
function isNumberKeyForAmount(evt) {
    var charCode = (evt.which) ? evt.which : event.keyCode
    if (charCode > 31 && (charCode < 48 || charCode > 57) && charCode != 46)
        return false;
    return true;
}


1
আমি নিজে নিজে টাইপ করলে এটি কাজ করছে। তবে আমি অনুলিপি বিশেষ অক্ষরগুলি আটকে দিতে সক্ষম।
সুনীল গার্গ

3

আমি অন্যদের যা দেখেছি তা পরিবর্তন করে এই কোডটি ব্যবহার করি। কী চাপলে বা পেস্ট করা পাঠ্য প্যাটার্ন পরীক্ষায় (ম্যাচ) পাস হলে শুধুমাত্র ব্যবহারকারী লেখার জন্য গ্র্যান্ড (এই উদাহরণটি এমন একটি পাঠ্য ইনপুট যা কেবলমাত্র 8 টি সংখ্যাকে মঞ্জুরি দেয়)

$("input").on("keypress paste", function(e){
    var c = this.selectionStart, v = $(this).val();
    if (e.type == "keypress")
        var key = String.fromCharCode(!e.charCode ? e.which : e.charCode)
    else
        var key = e.originalEvent.clipboardData.getData('Text')
    var val = v.substr(0, c) + key + v.substr(c, v.length)
    if (!val.match(/\d{0,8}/) || val.match(/\d{0,8}/).toString() != val) {
        e.preventDefault()
        return false
    }
})

কেন !e.charCode ? e.which : e.charCodeএবং সহজভাবে না e.charCode ? e.charCode : e.which?
ম্যাসিমিলিয়ানো ক্রাউস

দশমিক সংখ্যা গ্রহণের জন্য কী পরিবর্তন করা দরকার?
ইউবিএম

2

এটি এমন একটি উদাহরণ যা ব্যবহারকারীকে "ক" অক্ষর টাইপ করতে বাধা দেয়

$(function() {
$('input:text').keydown(function(e) {
if(e.keyCode==65)
    return false;

});
});

কী কোডগুলি এখানে রেফারেন্স:
http://www.expandinghead.net/keycode.html


আমি ভাবব যে আপনি যে কী-কোডগুলি মঞ্জুর করতে চান না সেগুলি সমস্ত চেষ্টা ও পরিচালনা করার জন্য অপ্রতিরোধ্য হতে পারে।
আরসোলবার্গ

আপনি যদি কাউকে কেবল 1 থেকে 5 নম্বর সন্নিবেশ করতে সীমাবদ্ধ রাখতে চান তবে আপনি আপনার কোডের মধ্যে 5 টি কীকোডগুলি পরিচালনা করবেন।
আরসোলবার্গ

2
আপনার জন্য যদি আলফা সংখ্যার প্লাগইন না হয় তবে এটি আসলে কোনও খারাপ পরিকল্পনা নয়। আমি এটি একটি স্যুইচ / কেস স্টেটমেন্ট দিয়ে কাজ করেছি। এই উদাহরণটি এমন অক্ষরগুলিকে অস্বীকার করে যেগুলি ডিরেক্টরি নামগুলিতে অনুমোদিত নয়: $ ('ইনপুট [টাইপ =' পাঠ্য '], টেক্সারিয়া') key 63: কেস 37: কেস 42: কেস 59: কেস 124: কেস 34: কেস 60: কেস 62: মিথ্যা প্রত্যাবর্তন;};});
এম মিলার

@ ব্যবহারকারী434917, যখন আমি অ্যান্ড্রয়েড মোবাইল ক্রোম ব্রাউজার দিয়ে এটি পরীক্ষা করি তখন আপনার কোড কাজ করে না। আপনার কি এর কোন সমাধান আছে ..?
প্রণেশ জনার্থনন

2
$(function(){
      $('input').keyup(function(){
        var input_val = $(this).val();
        var inputRGEX = /^[a-zA-Z0-9]*$/;
        var inputResult = inputRGEX.test(input_val);
          if(!(inputResult))
          {     
            this.value = this.value.replace(/[^a-z0-9\s]/gi, '');
          }
       });
    });

1

হ্যাঁ আপনি jQuery ব্যবহার করে এটি করতে পারেন:

<script>
$(document).ready(function()
{
    $("#username").blur(function()
    {
        //remove all the class add the messagebox classes and start fading
        $("#msgbox").removeClass().addClass('messagebox').text('Checking...').fadeIn("slow");
        //check the username exists or not from ajax
        $.post("user_availability.php",{ user_name:$(this).val() } ,function(data)
        {
          if(data=='empty') // if username is empty
          {
            $("#msgbox").fadeTo(200,0.1,function() //start fading the messagebox
            { 
              //add message and change the class of the box and start fading
              $(this).html('Empty user id is not allowed').addClass('messageboxerror').fadeTo(900,1);
            });
          }
          else if(data=='invalid') // if special characters used in username
          {
            $("#msgbox").fadeTo(200,0.1,function() //start fading the messagebox
            { 
              //add message and change the class of the box and start fading
              $(this).html('Sorry, only letters (a-z), numbers (0-9), and periods (.) are allowed.').addClass('messageboxerror').fadeTo(900,1);
            });
          }
          else if(data=='no') // if username not avaiable
          {
            $("#msgbox").fadeTo(200,0.1,function() //start fading the messagebox
            { 
              //add message and change the class of the box and start fading
              $(this).html('User id already exists').addClass('messageboxerror').fadeTo(900,1);
            });     
          }
          else
          {
            $("#msgbox").fadeTo(200,0.1,function()  //start fading the messagebox
            { 
              //add message and change the class of the box and start fading
              $(this).html('User id available to register').addClass('messageboxok').fadeTo(900,1); 
            });
          }

        });

    });
});
</script>
<input type="text" id="username" name="username"/><span id="msgbox" style="display:none"></span>

এবং আপনার ব্যবহারকারীর জন্য উপলব্ধ স্ক্রিপ্টটি হবে: পিএইচপি হবে:

<?php
include'includes/config.php';

//value got from the get method
$user_name = trim($_POST['user_name']);

if($user_name == ''){
    echo "empty";
}elseif(preg_match('/[\'^£$%&*()}{@#~?><>,|=_+¬-]/', $user_name)){
    echo "invalid";
}else{
    $select = mysql_query("SELECT user_id FROM staff");

    $i=0;
    //this varible contains the array of existing users
    while($fetch = mysql_fetch_array($select)){
        $existing_users[$i] = $fetch['user_id'];
        $i++;
    }

    //checking weather user exists or not in $existing_users array
    if (in_array($user_name, $existing_users))
    {
        //user name is not availble
        echo "no";
    } 
    else
    {
        //user name is available
        echo "yes";
    }
}
?>

আমি যোগ করার চেষ্টা করেছেন / এবং \ কিন্তু সফল হয়েছে।


আপনি জাভাস্ক্রিপ্ট ব্যবহার করে এটি করতে পারেন এবং কোডটি হ'ল:

<!-- Check special characters in username start -->
<script language="javascript" type="text/javascript">
function check(e) {
    var keynum
    var keychar
    var numcheck
    // For Internet Explorer
    if (window.event) {
        keynum = e.keyCode;
    }
    // For Netscape/Firefox/Opera
    else if (e.which) {
        keynum = e.which;
    }
    keychar = String.fromCharCode(keynum);
    //List of special characters you want to restrict
    if (keychar == "'" || keychar == "`" || keychar =="!" || keychar =="@" || keychar =="#" || keychar =="$" || keychar =="%" || keychar =="^" || keychar =="&" || keychar =="*" || keychar =="(" || keychar ==")" || keychar =="-" || keychar =="_" || keychar =="+" || keychar =="=" || keychar =="/" || keychar =="~" || keychar =="<" || keychar ==">" || keychar =="," || keychar ==";" || keychar ==":" || keychar =="|" || keychar =="?" || keychar =="{" || keychar =="}" || keychar =="[" || keychar =="]" || keychar =="¬" || keychar =="£" || keychar =='"' || keychar =="\\") {
        return false;
    } else {
        return true;
    }
}
</script>
<!-- Check special characters in username end -->

<!-- in your form -->
    User id : <input type="text" id="txtname" name="txtname" onkeypress="return check(event)"/>

2
ডুড, আপনি অতিরিক্ত কোডের পুরো গুচ্ছটি অন্তর্ভুক্ত করেছেন যা সম্ভবত সহায়ক নয়। আপনি কি একেবারে ন্যূনতম করতে পারেন? এবং তিনি jQuery সম্পর্কে জিজ্ঞাসা করছিলেন, পিএইচপি প্রাসঙ্গিক কিনা তা আমি নিশ্চিত নই।
সাইমন পূর্ব

@ পিএইচপি ফেরারি: আমি জাভাস্ক্রিপ্ট কোড ব্যবহার করছি, আপনার কোডটি ভাল কাজ করছে, যদি গ্রাহক বিশেষ চরিত্রে প্রবেশ করে তবে আমি কীভাবে সতর্কতা পপআপ বার্তা প্রদর্শন করতে পারি। "বিশেষ অক্ষর অনুমোদিত নয়" এর মতো বার্তাটি।
রত্ন

1

শুধু সংখ্যা:

'(' ইনপুট.টাইম ')। কীডাউন (ফাংশন (ঙ)) {যদি (e.keyCode> = 48 && e.keyCode <= 57) {সত্য প্রত্যাবর্তন করুন} অন্যথায় false মিথ্যা ফিরুন;}});

বা ":" সহ সময়ের জন্য

'(' ইনপুট.টাইম ') key কীডাউন (ফাংশন (ঙ)) {যদি (e.keyCode> = 48 && e.keyCode <= 58) {সত্য প্রত্যাবর্তন করুন} অন্যথায় {মিথ্যা ফিরুন;}});

মুছুন এবং ব্যাকস্পেস সহ:

'(' ইনপুট.টিম ') মিথ্যা;}});

দুর্ভাগ্যজনকভাবে এটি কোনও আইএমএসি-তে কাজ করতে পাচ্ছে না


1

ডেলের উত্তরে অ্যালেক্সের মন্তব্যে মন্তব্য করতে চেয়েছিলেন। সম্ভব নয় (প্রথমে কতটা "রেপ" দরকার? তা খুব তাড়াতাড়ি ঘটবে না .. অদ্ভুত সিস্টেম।) সুতরাং উত্তর হিসাবে:

ব্যাকস্পেসটি এ জাতীয় পুনরায় সংজ্ঞা হিসাবে \ বি যোগ করে যুক্ত করা যেতে পারে: [a-zA-Z0-9 \ b]। অথবা আপনি কেবলমাত্র "অ-বহিরাগত" অক্ষর (ব্যাকস্পেসের মতো অক্ষরগুলিও নিয়ন্ত্রণ করেন) সহ পুরো লাতিন সীমাটিকে মঞ্জুরি দিন: ^ [\ u0000- \ u024F \ u20AC] + $

লাতিনের বাইরের কেবলমাত্র ইউনিকোড চর ইউরো চিহ্ন (20ac) রয়েছে, আপনার অন্য যা প্রয়োজন তা যুক্ত করুন।

অনুলিপি এবং পেস্টের মাধ্যমে প্রবেশ করা ইনপুট পরিচালনা করতে, কেবল "পরিবর্তন" ইভেন্টের সাথে আবদ্ধ হন এবং সেখানে ইনপুটটিও পরীক্ষা করে দেখুন - এটি মোছা বা স্ট্রিপ করে / "সমর্থিত অক্ষর নয়" এর মতো একটি ত্রুটি বার্তা প্রদান করে ..

if (!regex.test($j(this).val())) {
  alert('your input contained not supported characters');
  $j(this).val('');
  return false;
}

1

কীপ্রেসে বিশেষ অক্ষরগুলি সীমাবদ্ধ করুন। কী কোডগুলির জন্য এখানে একটি পরীক্ষা পৃষ্ঠা রয়েছে: http://www.asquare.net/javascript/tests/KeyCode.html

var specialChars = [62,33,36,64,35,37,94,38,42,40,41];

some_element.bind("keypress", function(event) {
// prevent if in array
   if($.inArray(event.which,specialChars) != -1) {
       event.preventDefault();
   }
});

কৌণিক ভাষায়, আমার পাঠ্যক্ষেত্রে আমার একটি সঠিক মুদ্রার বিন্যাস প্রয়োজন। আমার সমাধান:

var angularApp = angular.module('Application', []);

...

// new angular directive
angularApp.directive('onlyNum', function() {
    return function( scope, element, attrs) {

        var specialChars = [62,33,36,64,35,37,94,38,42,40,41];

        // prevent these special characters
        element.bind("keypress", function(event) {
            if($.inArray(event.which,specialChars) != -1) {
                prevent( scope, event, attrs)
             }
        });

        var allowableKeys = [8,9,37,39,46,48,49,50,51,52,53,54,55,56
            ,57,96,97,98,99,100,101,102,103,104,105,110,190];

        element.bind("keydown", function(event) {
            if($.inArray(event.which,allowableKeys) == -1) {
                prevent( scope, event, attrs)
            }
        });
    };
})

// scope.$apply makes angular aware of your changes
function prevent( scope, event, attrs) {
    scope.$apply(function(){
        scope.$eval(attrs.onlyNum);
        event.preventDefault();
    });
    event.preventDefault();
}

এইচটিএমএলে নির্দেশটি যুক্ত করুন

<input only-num type="text" maxlength="10" id="amount" placeholder="$XXXX.XX"
   autocomplete="off" ng-model="vm.amount" ng-change="vm.updateRequest()">

এবং সংশ্লিষ্ট কৌণিক নিয়ামকটিতে আমি কেবল সেখানে কেবল 1 পিরিয়ড থাকার অনুমতি করি, পাঠ্যে সংখ্যায় রূপান্তর করি এবং 'অস্পষ্টতা' এর উপর নম্বরটি যোগ করি

...

this.updateRequest = function() {
    amount = $scope.amount;
    if (amount != undefined) {
        document.getElementById('spcf').onkeypress = function (e) {
        // only allow one period in currency
        if (e.keyCode === 46 && this.value.split('.').length === 2) {
            return false;
        }
    }
    // Remove "." When Last Character and round the number on blur
    $("#amount").on("blur", function() {
      if (this.value.charAt(this.value.length-1) == ".") {
          this.value.replace(".","");
          $("#amount").val(this.value);
      }
      var num = parseFloat(this.value);
      // check for 'NaN' if its safe continue
      if (!isNaN(num)) {
        var num = (Math.round(parseFloat(this.value) * 100) / 100).toFixed(2);
        $("#amount").val(num);
      }
    });
    this.data.amountRequested = Math.round(parseFloat(amount) * 100) / 100;
}

...

1

বিশেষ অক্ষর, স্থান প্রতিস্থাপন এবং নিম্ন কেসিতে রূপান্তর করতে

$(document).ready(function (){
  $(document).on("keyup", "#Id", function () {
  $("#Id").val($("#Id").val().replace(/[^a-z0-9\s]/gi, '').replace(/[_\s]/g, '').toLowerCase());
 }); 
});

0
[User below code to restrict special character also    

$(h.txtAmount).keydown(function (event) {
        if (event.shiftKey) {
            event.preventDefault();
        }
        if (event.keyCode == 46 || event.keyCode == 8) {
        }
        else {
            if (event.keyCode < 95) {
                if (event.keyCode < 48 || event.keyCode > 57) {
                    event.preventDefault();
                }
            }
            else {
                if (event.keyCode < 96 || event.keyCode > 105) {
                    event.preventDefault();
                }
            }
        }


    });]

4
কোড-কেবলমাত্র উত্তরগুলি ব্যাখ্যা ছাড়াই খুব বেশি কার্যকর হয় না।
Vemonus 20'17

0

কেবলমাত্র পাঠ্যবক্সে সংখ্যার অনুমতি দিন (বর্ণমালা এবং বিশেষ অক্ষরগুলি সীমাবদ্ধ করুন)

        /*code: 48-57 Numbers
          8  - Backspace,
          35 - home key, 36 - End key
          37-40: Arrow keys, 46 - Delete key*/
        function restrictAlphabets(e){
            var x=e.which||e.keycode;
            if((x>=48 && x<=57) || x==8 ||
                (x>=35 && x<=40)|| x==46)
                return true;
            else
                return false;
        }

0
/**
     * Forbids special characters and decimals
     * Allows numbers only
     * */
    const numbersOnly = (evt) => {

        let charCode = (evt.which) ? evt.which : evt.keyCode;
        if (charCode === 46 && charCode > 31 && (charCode < 48 || charCode > 57)) {
            return false;
        }

        let inputResult = /^[0-9]*$/.test(evt.target.value);
        if (!inputResult) {
            evt.target.value = evt.target.value.replace(/[^a-z0-9\s]/gi, '');
        }

        return true;
    }
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.