একটি স্ট্রিংয়ে জাভাস্ক্রিপ্টে একটি নির্দিষ্ট অক্ষর রয়েছে কিনা তা কীভাবে বলবেন?


334

আমার একটি পাঠ্যবাক্স সহ একটি পৃষ্ঠা রয়েছে যেখানে কোনও ব্যবহারকারী একটি 24 অক্ষর (অক্ষর এবং সংখ্যা, কেস সংবেদনশীল) নিবন্ধকরণ কোড প্রবেশ করানোর কথা বলে। আমি maxlengthব্যবহারকারীকে 24 টি অক্ষরে প্রবেশের সীমাবদ্ধ করতাম ।

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

আমি কীভাবে jQuery ছাড়াই আমার জাভাস্ক্রিপ্ট কোডটি লিখতে পারি তা পরীক্ষা করতে যে ব্যবহারকারী প্রদত্ত স্ট্রিংয়ে ড্যাশ নেই বা আরও ভাল, কেবলমাত্র বর্ণানুক্রমিক অক্ষর রয়েছে?


2
এখানে পাওয়া উত্তরের stackoverflow.com/questions/3192612 বর্ণানুক্রমিকগুলিতে বৈধতা দেওয়ার পদ্ধতি সম্পর্কিত তথ্য রয়েছে।
জেসকাভ

1
এবং নিয়মিত এক্সপ্রেশনগুলি শিখতে: নিয়মিত-
ফেলিক্স ক্লিং

আপনার জন্য jquery ভাবেন আপনার উচিত এবং ব্যবহার করা উচিত inArray
জোনএইচ

3
ইনপুট কীভাবে ফর্ম্যাট করা হয় তা কোনও মানুষের সমস্যা নয়। এটি কম্পিউটারের সমস্যা। ব্যবহারকারী যেভাবে প্রবেশ করান তা নিন এবং সমস্ত অক্ষর (যা অ-আলফা নয়) সরিয়ে ফেলুন, ফলাফলটি 24 অক্ষর দীর্ঘ কিনা তা পরীক্ষা করুন, তারপরে এটি বৈধ করুন। ব্যবহারকারীর প্রকৃত বিন্যাস ফর্ম্যাট ইনপুট।
tggagne

উত্তর:


590

"হ্যালো" খুঁজে পেতে your_string

if (your_string.indexOf('hello') > -1)
{
  alert("hello found inside your_string");
}

আলফা সংখ্যার জন্য আপনি একটি নিয়মিত অভিব্যক্তি ব্যবহার করতে পারেন:

http://www.regular-expressions.info/javascript.html

আলফা সংখ্যার নিয়মিত এক্সপ্রেশন


এটা বেশ সহায়ক ছিল। পাইথন প্রোগ্রামার হিসাবে কথা বলছি, আমি এটি "ইন" কীওয়ার্ডটি প্রতিস্থাপন করতে ব্যবহার করছি (যা নিরপেক্ষ হতে পারে বা না হতে পারে, আমি নিশ্চিত নই) তবে এটি কেবল একটি একক চরিত্রের জন্য কাজ করে না।
ট্রেভরকির্কবি

1
উত্তরে কীভাবে এটি ভোট হয়েছে তা আমি বুঝতে পারি না। আমি দেখতে পাচ্ছি যে গুগলিংয়ের মাধ্যমে প্রচুর লোক এখানে আসে। একটি ভাল উপায় অবশ্যই একটি নিয়মিত অভিব্যক্তি ব্যবহার করা হবে।
স্পোক

25
আপনি একটি একক চরিত্রের জন্য পরীক্ষা করতে নিয়মিত প্রকাশটি ব্যবহার করবেন? বিল্ট ফাংশনটিতে ঠিক একই জিনিসটি পেতে এটি অতিরিক্ত পরিমাণে ওভারহেড। এমন অনেক লোক আছেন যারা রেজেক্স বুঝতে পারেন না এবং সাধারণত সরল উত্তরটি সবচেয়ে ভাল।
কেমিলার2002

আমি সাথে যেতে হবে /hello/g.test(your_string)। ইন্ডেক্সঅফ কাজ করার সময়, আমি মনে করি একটি রেজেক্স পরীক্ষা আপনি কী অর্জন করার চেষ্টা করছেন তার আরও ভাল গল্প বলে। যদি আমি একটি স্ট্রিংয়ের মধ্যে অক্ষরের ক্রম খুঁজতে চেষ্টা করি তবে সূচকটি অপ্রাসঙ্গিক।
জো মাফি


69

ES6 সহ অন্তর্ভুক্ত ()

"FooBar".includes("oo"); // true

"FooBar".includes("foo"); // false

"FooBar".includes("oo", 2); // false

ই: ইন্টারনেট দ্বারা suported নেই - এর পরিবর্তে আপনি টিল্ডা opperator ব্যবহার করতে পারেন ~( bitwise না সঙ্গে) .indexOf ()

~"FooBar".indexOf("oo"); // -2 -> true

~"FooBar".indexOf("foo"); // 0 -> false

~"FooBar".indexOf("oo", 2); // 0 -> false

একটি সংখ্যার সাথে ব্যবহৃত, টিল্ড অপারেটর কার্যকর করে ~N => -(N+1)। সংখ্যাগুলিকে বুলে রূপান্তর করতে এটি ডাবল নেগ্রেশন !!( লজিকাল নোট) দিয়ে ব্যবহার করুন :

!!~"FooBar".indexOf("oo"); // true

!!~"FooBar".indexOf("foo"); // false

!!~"FooBar".indexOf("oo", 2); // false

সহজ, পঠনযোগ্য এবং একটি বুলিয়ান দেয়। আপনার যখন নিয়মিত মত প্রকাশের প্রয়োজন হয় না তার জন্য উপযুক্ত।
ব্রায়ানব্রাউন

1
** দয়া করে নোট করুন যে অন্তর্ভুক্ত পদ্ধতিটি আইই দ্বারা সমর্থিত নয় **
বোনজ024

52

আপনার যদি ভেরিয়েবলের পাঠ্য থাকে foo:

if (! /^[a-zA-Z0-9]+$/.test(foo)) {
    // Validation failed
}

এটি পরীক্ষা করে তা নিশ্চিত করবে যে ব্যবহারকারী কমপক্ষে একটি অক্ষর প্রবেশ করেছে এবং কেবলমাত্র বর্ণমালা অক্ষর প্রবেশ করেছে ।


এখানে সেরা উত্তর, অন্য সমস্ত উত্তর আমার pov থেকে বাতিল।
chris_r


11

ES6 স্ট্রিংয়ে ইনবিল্ট পদ্ধতি ( includes) ধারণ করে prototype, যা স্ট্রিংয়ে অন্য স্ট্রিং রয়েছে কিনা তা পরীক্ষা করতে ব্যবহার করা যেতে পারে।

var str = 'To be, or not to be, that is the question.';

console.log(str.includes('To be')); 

নিম্নলিখিত পলফিলটি অ-সমর্থিত ব্রাউজারগুলিতে এই পদ্ধতিটি যুক্ত করতে ব্যবহার করা যেতে পারে। ( উত্স )

if (!String.prototype.includes) {
  String.prototype.includes = function(search, start) {
    'use strict';
    if (typeof start !== 'number') {
      start = 0;
    }
    
    if (start + search.length > this.length) {
      return false;
    } else {
      return this.indexOf(search, start) !== -1;
    }
  };
}


7

এটি সম্পাদন করতে একটি নিয়মিত অভিব্যক্তি ব্যবহার করুন।

function isAlphanumeric( str ) {
 return /^[0-9a-zA-Z]+$/.test(str);
}

এটি ঠিক এক অঙ্কের জন্য পরীক্ষা করবে এবং ওপেনের ইচ্ছা অনুসারে সমস্ত বর্ণমালা অক্ষর গ্রহণ করবে না।
সিডিউইউই

@ সিডোউই .. একটি + ভুলে গেছেন, তবে আমি প্রশ্নটিও ভুলভাবে লিখেছি .. উল্লেখ করার জন্য ধন্যবাদ।
গ্যাব্রিয়েল পেট্রিওলি

6

আপনি সবাই খুব শক্ত চিন্তা করছেন। কেবল একটি সাধারণ নিয়মিত এক্সপ্রেশন ব্যবহার করুন, এটি আপনার সেরা বন্ধু।

var string1 = "Hi Stack Overflow. I like to eat pizza."
var string2 = "Damn, I fail."

var regex = /(pizza)/g // Insert whatever phrase or character you want to find

string1.test(regex); // => true
string2.test(regex); // => false

রিজেক্স 5 মিনিটে শিখবেন?


সুতরাং এটি দিয়ে ব্যবহারিক কিছু করার জন্য, আপনি কেবল এটি একটি নির্বাচনের মধ্যে চালাতে চান:if ( string1.test(regex) ) { alert("He likes pizza!"); }
অ্যাডাম ম্যাকআর্থার

এবং আপনার বর্ণানুক্রমিক পরীক্ষা হবে ...var regex = /^[a-z0-9]+$/i
অ্যাডাম ম্যাকআর্থার

4
এটি পিছনের দিকে। দেখুন developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/... regexObj.test (STR)
রালফ Yozzo

এটা পিছনে? regex.test(string1)
এইচএলসিএস

আপনার উদাহরণ পদ্ধতিগুলি পিছনের দিকে। এটা হওয়া উচিত regex.test(str)। ( str.match(regex)অনুরূপ, তবে কোনও
বুলেটিয়ান

6

আপনি শুরু অথবা পংক্তির শেষে অক্ষর (গুলি) করুন না অনুসন্ধানের, এছাড়াও আপনি ব্যবহার করতে পারেন তাহলে startsWithএবংendsWith

const country = "pakistan";
country.startsWith('p'); // true
country.endsWith('n');  // true


4

শুধুমাত্র বর্ণানুক্রমিক অক্ষরের জন্য পরীক্ষা করতে:

if (/^[0-9A-Za-z]+$/.test(yourString))
{
    //there are only alphanumeric characters
}
else
{
    //it contains other characters
}

রেজেক্স ইনপুট (^) এর শুরু দিয়ে এবং ইনপুট ($) এর শেষে থামিয়ে 0-9, AZ, এবং অক্ষরের সেটটির 1 বা আরও বেশি (+) জন্য পরীক্ষা করছে with


4

কেভিনস উত্তরটি সঠিক তবে এটির জন্য একটি "যাদু" নম্বর প্রয়োজন:

var containsChar = s.indexOf(somechar) !== -1;

যে ক্ষেত্রে আপনাকে জানাতে চাই যে প্রয়োজন -1 দাঁড়িয়েছে পাওয়া যায়নি । আমি মনে করি যে আরও ভাল সংস্করণটি হবে:

var containsChar = s.indexOf(somechar) >= 0;

ওয়েল অনুযায়ী মূল , বর্তমান , এবং খসড়া মান, indexOf()ফিরে আসবে -1 যদি স্ট্রিং পাওয়া যায় না। সুতরাং এটি 0 ব্যবহারের চেয়ে কমই যাদু বেশি ।
সমস্ত কর্মীরা


3

স্ট্রিংয়ের অনুসন্ধানের কার্যটিও কার্যকর। এটি একটি অক্ষরের পাশাপাশি একটি প্রদত্ত স্ট্রিংয়ে একটি সাব_স্ট্রিং অনুসন্ধান করে।

'apple'.search('pl') আয় 2

'apple'.search('x') প্রত্যাবর্তন -1


2

আপনি যদি ডোম থেকে ডেটা যেমন এপি বা এইচ 1 ট্যাগ পড়ছেন, উদাহরণস্বরূপ, আপনি দুটি দেশীয় জাভাস্ক্রিপ্ট ফাংশন ব্যবহার করতে চাইবেন, এটি নিখুঁত সহজ তবে এসই 6 এর মধ্যে সীমাবদ্ধ, অন্তত আমি যে সমাধানটি সরবরাহ করতে যাচ্ছি তার জন্য। আমি DOM এর মধ্যে সমস্ত পি ট্যাগ অনুসন্ধান করব, যদি পাঠ্যে একটি "টি" থাকে তবে পুরো অনুচ্ছেদটি সরানো হবে। আমি আশা করি এই ছোট্ট উদাহরণটি কাউকে সাহায্য করবে!

এইচটিএমএল

<p>Text you need to read one</p>
<p>Text you need to read two</p>
<p>Text you need to read three</p>

জাতীয়

let paras = document.querySelectorAll('p');

paras.forEach(p => {
  if(p.textContent.includes('T')){
       p.remove();
    } 
});

1

নিখুঁতভাবে কাজ করা hisএ উদাহরণটি প্রচুর সাহায্য করবে।

<script>    
    function check()
    {
       var val = frm1.uname.value;
       //alert(val);
       if (val.indexOf("@") > 0)
       {
          alert ("email");
          document.getElementById('isEmail1').value = true;
          //alert( document.getElementById('isEmail1').value);
       }else {
          alert("usernam");
          document.getElementById('isEmail1').value = false;
          //alert( document.getElementById('isEmail1').value);
       }
    }
</script>

<body>
    <h1>My form </h1>
    <form action="v1.0/user/login" method="post" id = "frm1">
        <p>
            UserName : <input type="text" id = "uname" name="username" />
        </p>
        <p>
            Password : <input type="text" name="password" />
        </p>
        <p>
            <input type="hidden" class="email" id = "isEmail1" name = "isEmail"/>
        </p>
        <input type="submit" id = "submit" value="Add User" onclick="return check();"/>
    </form>
</body>

0

বিক্ষোভ: অন্তর্ভুক্ত () পদ্ধতিটি পুরো স্ট্রিংয়ে "অন্তর্ভুক্ত" অক্ষরটি আবিষ্কার করে, এটি একটি সত্য ফিরে আসবে।

var string = "This is a tutsmake.com and this tutorial contains javascript include() method examples."

str.includes("contains");

//The output of this

  true


0

স্ট্রিংটি আলফানিউমারিক বা আলফানামুরিক + কিছু অনুমোদিত অক্ষর কিনা তা পরীক্ষা করুন

দ্রুততম বর্ণানুক্রমিক পদ্ধতিটি সম্ভবত উল্লিখিত হিসাবে রয়েছে: জাভাস্ক্রিপ্টে বর্ণানুক্রমিক চেক করার সর্বোত্তম উপায় এটি সরাসরি সংখ্যার ব্যাপ্তিতে কাজ করে।

তারপর, কয়েক অন্যান্য অতিরিক্ত অক্ষর sanely আমরা শুধু তাদের লাগাতে পারেন করার অনুমতি একটিSet ফাস্ট লুকআপ জন্য।

আমি বিশ্বাস করি যে এই বাস্তবায়নটি সার্োগেট জোড়গুলি সঠিকভাবে সঠিকভাবে মোকাবেলা করবে ।

#!/usr/bin/env node

const assert = require('assert');

const char_is_alphanumeric = function(c) {
  let code = c.codePointAt(0);
  return (
    // 0-9
    (code > 47 && code < 58) ||
    // A-Z
    (code > 64 && code < 91) ||
    // a-z
    (code > 96 && code < 123)
  )
}

const is_alphanumeric = function (str) {
  for (let c of str) {
    if (!char_is_alphanumeric(c)) {
      return false;
    }
  }
  return true;
};

// Arbitrarily defined as alphanumeric or '-' or '_'.
const is_almost_alphanumeric = function (str) {
  for (let c of str) {
    if (
      !char_is_alphanumeric(c) &&
      !is_almost_alphanumeric.almost_chars.has(c)
    ) {
      return false;
    }
  }
  return true;
};
is_almost_alphanumeric.almost_chars = new Set(['-', '_']);

assert( is_alphanumeric('aB0'));
assert(!is_alphanumeric('aB0_-'));
assert(!is_alphanumeric('aB0_-*'));
assert(!is_alphanumeric('你好'));

assert( is_almost_alphanumeric('aB0'));
assert( is_almost_alphanumeric('aB0_-'));
assert(!is_almost_alphanumeric('aB0_-*'));
assert(!is_almost_alphanumeric('你好'));

গিটহাব উজানের দিকে

নোড.জেএস ভি 10.15.1 এ পরীক্ষিত।

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