উত্তর:
নিম্নলিখিত প্রকাশটি ব্যবহার করুন:
^[a-zA-Z0-9]*$
অর্থাৎ,
using System.Text.RegularExpressions;
Regex r = new Regex("^[a-zA-Z0-9]*$");
if (r.IsMatch(SomeString)) {
...
}
.NET 4.0 এ আপনি লিনকিউ ব্যবহার করতে পারেন:
if (yourText.All(char.IsLetterOrDigit))
{
//just letters and digits.
}
yourText.Allকার্যকর করা বন্ধ করে দেয় এবং falseপ্রথমবারের char.IsLetterOrDigitরিপোর্টগুলি ফিরিয়ে দেবে falseকারণ চুক্তিটি তখন সম্পূর্ণ Allহতে পারে না।
বিঃদ্রঃ! এই উত্তরটি কঠোরভাবে বর্ণমালা পরীক্ষা করে না (যা সাধারণত এজেড, এজ এবং 0-9 হয়)। এই উত্তরটি স্থানীয় চরিত্রগুলিকে পছন্দ করে åäö।
আপডেট 2018-01-29
উপরের সিনট্যাক্সটি কেবল তখনই কাজ করে যখন আপনি একটি একক পদ্ধতি ব্যবহার করেন যা সঠিক ধরণের একক যুক্তিযুক্ত (এই ক্ষেত্রে char)।
একাধিক শর্ত ব্যবহার করার জন্য আপনাকে এই জাতীয় লেখার দরকার রয়েছে:
if (yourText.All(x => char.IsLetterOrDigit(x) || char.IsWhiteSpace(x)))
{
}
char.IsLetterOrDigit('ก')ফিরে আসবে true। csharppad.com/gist/f96a6062f9f8f4e974f222ce313df8ca
আপনি এটি কোনও রেগেক্সের চেয়ে এক্সটেনশন ফাংশন দিয়ে সহজেই করতে পারেন ...
public static bool IsAlphaNum(this string str)
{
if (string.IsNullOrEmpty(str))
return false;
for (int i = 0; i < str.Length; i++)
{
if (!(char.IsLetter(str[i])) && (!(char.IsNumber(str[i]))))
return false;
}
return true;
}
প্রতি মন্তব্য :) ...
public static bool IsAlphaNum(this string str)
{
if (string.IsNullOrEmpty(str))
return false;
return (str.ToCharArray().All(c => Char.IsLetter(c) || Char.IsNumber(c)));
}
char.IsLetterOrDigitপরিবর্তে ইসলেটার + ইসনম্বার ব্যবহার করুন
যদিও আমি মনে করি রেগেক্স-ভিত্তিক সমাধানটি সম্ভবত আমি যেভাবে চলেছি, তবে আমি এটিকে এক প্রকারের মধ্যে আবদ্ধ করতে প্ররোচিত করব।
public class AlphaNumericString
{
public AlphaNumericString(string s)
{
Regex r = new Regex("^[a-zA-Z0-9]*$");
if (r.IsMatch(s))
{
value = s;
}
else
{
throw new ArgumentException("Only alphanumeric characters may be used");
}
}
private string value;
static public implicit operator string(AlphaNumericString s)
{
return s.value;
}
}
এখন, যখন আপনার কোনও বৈধযুক্ত স্ট্রিং দরকার হয়, তখন আপনার কাছে পদ্ধতিটির স্বাক্ষরটির জন্য একটি আলফা নিউমারিক স্ট্রিং প্রয়োজন হতে পারে এবং জেনে রাখুন যে আপনি যদি এটি পান তবে এটি বৈধ (নাল বাদে)। যদি কেউ অ-বৈধতাযুক্ত স্ট্রিংয়ে যাওয়ার চেষ্টা করে তবে এটি একটি সংকলক ত্রুটি তৈরি করবে।
আপনি যদি মনোযোগ দেন তবে আপনি সমস্ত সাম্যতা অপারেটরগুলি বা আলফা নিউমারিক স্ট্রিংয়ের স্পষ্ট কাস্ট প্রয়োগ করতে পারেন to
static public implicit operator stringঅংশটি বোঝার চেষ্টা করছি
আমার এজেড, এজেড, 0-9 পরীক্ষা করা দরকার; কোনও রেজেক্স ছাড়াই (যদিও ওপি রিজেক্সের জন্য জিজ্ঞাসা করে)।
এখানে বিভিন্ন উত্তর এবং মন্তব্য মিশ্রন করা এবং https://stackoverflow.com/a/9975693/292060 থেকে আলোচনা , বর্ণ বা অঙ্কের জন্য এই পরীক্ষাগুলি, অন্যান্য ভাষার বর্ণগুলি এড়ানো এবং ভগ্নাংশের অক্ষরের মতো অন্যান্য সংখ্যাগুলি এড়ানো।
if (!String.IsNullOrEmpty(testString)
&& testString.All(c => Char.IsLetterOrDigit(c) && (c < 128)))
{
// Alphanumeric.
}
^\w+$ অনুমতি প্রদান করা হবে a-zA-Z0-9_
^[a-zA-Z0-9]+$আন্ডারস্কোর বাতিল করতে ব্যবহার করুন ।
মনে রাখবেন যে এই দুটিরই স্ট্রিং খালি না থাকা দরকার। *পরিবর্তে ব্যবহার করে +খালি স্ট্রিংকে অনুমতি দেয়।
^[\w-]+$
স্ট্রিংটি অক্ষর এবং অঙ্কের উভয় সমন্বয় কিনা তা পরীক্ষা করার জন্য, আপনি। নেট 4.0 এবং লিনকিউ ব্যবহার করে নীচে @ jgauffin উত্তরটি পুনরায় লিখতে পারেন:
if(!string.IsNullOrWhiteSpace(yourText) &&
yourText.Any(char.IsLetter) && yourText.Any(char.IsDigit))
{
// do something here
}
এখানে যেমন একই উত্তর ।
যদি আপনি একটি নন-রেজেক্স এএসসিআইআই A-z 0-9চেক চান, আপনি char.IsLetterOrDigit()অন্যান্য ইউনিকোডের অক্ষরগুলি অন্তর্ভুক্ত হিসাবে ব্যবহার করতে পারবেন না ।
আপনি যা করতে পারেন তা হল চরিত্রের কোড ব্যাপ্তিগুলি যাচাই করা।
নিম্নলিখিতটি আরও কিছুটা ভার্বোজ, তবে এটি কোড গল্ফের চেয়ে বোঝার স্বাচ্ছন্দ্যের জন্য।
public static bool IsAsciiAlphaNumeric(this string str)
{
if (string.IsNullOrEmpty(str))
{
return false;
}
for (int i = 0; i < str.Length; i++)
{
if (str[i] < 48) // Numeric are 48 -> 57
{
return false;
}
if (str[i] > 57 && str[i] < 65) // Capitals are 65 -> 90
{
return false;
}
if (str[i] > 90 && str[i] < 97) // Lowers are 97 -> 122
{
return false;
}
if (str[i] > 122)
{
return false;
}
}
return true;
}
ক্লিটাসের উত্তরের ভিত্তিতে আপনি নতুন এক্সটেনশন তৈরি করতে পারেন।
public static class StringExtensions
{
public static bool IsAlphaNumeric(this string str)
{
if (string.IsNullOrEmpty(str))
return false;
Regex r = new Regex("^[a-zA-Z0-9]*$");
return r.IsMatch(str);
}
}
.NET ফ্রেমওয়ার্কে কোডটি তৈরি এবং অন্তর্নির্মিত উপর নির্ভর না করার পরামর্শ দিচ্ছি, নতুন সমাধান আনার চেষ্টা করুন .. এটি আমি যা করি ..
public bool isAlphaNumeric(string N)
{
bool YesNumeric = false;
bool YesAlpha = false;
bool BothStatus = false;
for (int i = 0; i < N.Length; i++)
{
if (char.IsLetter(N[i]) )
YesAlpha=true;
if (char.IsNumber(N[i]))
YesNumeric = true;
}
if (YesAlpha==true && YesNumeric==true)
{
BothStatus = true;
}
else
{
BothStatus = false;
}
return BothStatus;
}
char.IsNumber()পদ্ধতিটি প্রাক-বিল্ট কোড হিসাবে ব্যবহার করা উচিত নয় ?