CSS පන්ති නම් / තේරීම් වල වලංගු වන අක්ෂර මොනවාද?


1210

CSS පන්ති තේරීම්කරුවන් තුළ අවසර දී ඇති චරිත / සංකේත මොනවාද?
පහත දැක්වෙන අක්ෂර වලංගු නොවන බව මම දනිමි , නමුත් වලංගු වන්නේ කුමන චරිතද ?

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

5
ආශ්‍රිත ප්‍රශ්නය: stackoverflow.com/questions/2812072/…
BalusC

32
utf8 අක්ෂර ගැන කුමක් කිව හැකිද? මම ග්‍රීක
භාෂාවෙන්

9
විශේෂ අක්ෂර ඔවුන් පලා එන මගින් පන්ති නම් භාවිතා කළ හැක - ඔබගේ CSS ගොනුව තුල ඔබ අර්ථ දැක්විය හැකි .hello/worldමෙම පදයේ අග පලා එන මගින් පන්ති: .hello\2fworld, hello\2f worldහෝhello\/world
wyqydsyq

1
තවත් සම්බන්ධ ප්‍රශ්නයක්, “නම්වල වාක්‍ය ඛණ්ඩය” ගැන නොව, බහු නම් ප්‍රකාශ කිරීමේදී “පන්ති ගුණාංගයේ වාක්‍ය ඛණ්ඩය” ගැන ය .
පීටර් ක්‍රවුස්

2
ඔබට ඉමොජි ද භාවිතා කළ හැකිය. npmjs.com/package/postcss-modules-emoji-classname
කෙවින් සූට්ල්

Answers:


1028

ඔබට CSS ව්‍යාකරණයෙන් කෙලින්ම පරීක්ෂා කළ හැකිය .

මූලික වශයෙන් 1 , නමක් ආරම්භ විය යුත්තේ යටි ඉරි ( _), යටි ඉරක් ( -) හෝ අකුරකින් ( a- z) ය, ඉන්පසු ඕනෑම යටි ඉරක්, යටි ඉරි, අකුරු හෝ අංක වලින් විය යුතුය. අල්ලා ගැනීමක් ඇත: පළමු අක්‍ෂරය යටි ඉරක් නම්, දෙවන අක්ෂරය 2 අකුරක් හෝ අවධාරනය කළ යුතු අතර නම අවම වශයෙන් අක්ෂර 2 ක් වත් විය යුතුය.

-?[_a-zA-Z]+[_a-zA-Z0-9-]*

කෙටියෙන් කිවහොත්, පෙර නියමය W3C පිරිවිතරයෙන් උපුටා ගත් පහත දැක්වෙන දේට පරිවර්තනය කරයි . :

CSS හි, හඳුනාගැනීම් වලට (තේරීම් කරුවන්ගේ මූලද්‍රව්‍ය නම්, පංති සහ හැඳුනුම්පත් ඇතුළුව) අඩංගු විය හැක්කේ [a-z0-9] සහ ISO 10646 අක්ෂර U + 00A1 සහ ඊට වැඩි, සහ යටි ඉර (-) සහ යටි ඉරි (_) ; ඒවාට ඉලක්කම් වලින් හෝ හයිපනයකින් පසුව ඉලක්කම් වලින් ආරම්භ කළ නොහැක. හඳුනාගැනීම් වලට පැන ගිය අක්ෂර සහ ඕනෑම ISO 10646 අක්ෂර සංඛ්‍යා කේතයක් ලෙස අඩංගු විය හැකිය (ඊළඟ අයිතමය බලන්න). උදාහරණයක් ලෙස, "B&W?" "B \ & W \?" හෝ "B \ 26 W \ 3F".

යටි ඉරකින් හෝ යටි ඉරි වලින් ආරම්භ වන හඳුනාගැනීම් සාමාන්‍යයෙන් බ්‍රවුසරයට විශේෂිත දිගු සඳහා වෙන් කර ඇත -moz-opacity.

[1 ] ගැලවී ගිය යුනිකෝඩ් අක්ෂර ඇතුළත් කිරීම මගින් මේ සියල්ල ටිකක් සංකීර්ණ වී ඇත (කිසිවෙකු සැබවින්ම භාවිතා නොකරන).

2 මා සම්බන්ධ කළ ව්‍යාකරණයට අනුව, TWO යටි ඉරකින් ආරම්භ වන රීතියක් --indent1අවලංගු බව සලකන්න . කෙසේ වෙතත්, මට විශ්වාසයි මම මෙය ප්‍රායෝගිකව දැක ඇති.


58
සැ.යු: W3C පවසන්නේ ප්‍රමුඛ පෙළේ '-' හෝ '_' භාවිතය වෙළෙන්දන්ට විශේෂිත වූ CSS දිගු සඳහා වෙන් කළ යුතු බවයි (උදා: මොසිල්ලා බ්‍රව්සර් විසින් ක්‍රියාත්මක කරන -moz * පන්ති).
මිපාඩි

3
Es -escapes බහුලව භාවිතා වන නමුත් සාමාන්‍යයෙන් බොහෝ විට CSS හක්ක සඳහා, ඒවාට සහාය නොදක්වන බ්‍රව්සර් හුදකලා කරයි.
බොබින්ස්

5
වසර දෙකක් පුරා @Pim Jager ගේ අදහස් යාවත්කාලීන කිරීමට පසු, අනුව w3counter.com/globalstats.php IE6 දැන් භාවිතා කරන්නන් 3% කටත් වඩා අඩු වන විට, IE9 පිටුපස 4%, IE7 මත 9% ක්, 8 යනු 22% භාවිතා කර ඇත. ෆයර්ෆොක්ස් හි සියලුම සංස්කරණ 28% ක්ද, ක්‍රෝම් හි සියලුම සංස්කරණ 17% ක්ද ඇත.
ඩැනියෙල් අර්විකර්

3
මෙය පැරණි පිළිතුරක් බව මම දනිමි, නමුත් CSS (අවම වශයෙන් 2+) හඳුනාගැනීම් වල ඕනෑම {ASCII නොවන} අක්ෂරයකට ඉඩ දෙයි .
user2864740

11
In CSS, identifiers (including element names, classes, and IDs in selectors) can contain only the characters [a-zA-Z0-9] and ISO 10646 characters U+00A0 and higher, plus the hyphen (-) and the underscore (_); they cannot start with a digit, two hyphens, or a hyphen followed by a digit. Identifiers can also contain escaped characters and any ISO 10646 character as a numeric code (see next item). For instance, the identifier "B&W?" may be written as "B\&W\?" or "B\26 W\3F". එබැවින් - --indent1අවලංගු වන අතර \--indent1--
එයින් ගැලවිය

179

මට පුදුමයට කරුණක් නම් මෙහි බොහෝ පිළිතුරු වැරදිය. එය නරකද ඔබ බැහැර කළ:

NUL හැර වෙනත් ඕනෑම චරිතයක් CSS හි CSS පන්ති නාම වලින් අවසර දෙනු ලැබේ. (CSS හි NUL අඩංගු නම් (ගැලවී හෝ නැත), ප්‍රති result ලය නිර්වචනය කර නොමැත. [ CSS-characters ])

Mathias Bynens 'පිළිතුර සබැඳි පැහැදිලි කිරීමක් සහ තාමත් බ්ලොග්කරණයට නවකයෙක් මෙම නම් භාවිතා කරන ආකාරය පෙන්නුම් කරයි. CSS කේතයෙන් ලියා ඇති අතර, පන්තියේ නමකට ගැලවීම අවශ්‍ය විය හැකි නමුත් එය පන්තියේ නම වෙනස් නොකරයි. උදා: අනවශ්‍ය ලෙස ඉක්මවා ගිය නිරූපණයක් එම නාමයේ වෙනත් නිරූපණයන්ට වඩා වෙනස් වනු ඇත, නමුත් එය තවමත් එකම පන්තියේ නමට යොමු කරයි.

වෙනත් බොහෝ (ක්‍රමලේඛන) භාෂාවන්ට විචල්‍ය නම් වලින් ගැලවීමේ සංකල්පයක් නොමැත (“හඳුනාගැනීම්”), එබැවින් විචල්‍යයක සියලුම නිරූපණයන් එක හා සමාන විය යුතුය. CSS හි මෙය එසේ නොවේ.

HTML ඇතුළත් කිරීමට කිසිදු ක්රමයක් නොමැති බව සටහන හිස් අවකාශයක් (අවකාශය, ටැබ්, රේඛීය ආහාර, ආකෘති පත්ර ආහාර හා carriage return) දී පන්ති නම විශේෂණය එකිනෙකාගෙන් ඔවුන් දැනටමත් වෙනම පන්ති නිසා.

එබැවින්, ඔබට අහඹු නූලක් CSS පන්තියේ නමක් බවට පත් කිරීමට අවශ්‍ය නම්: NUL සහ අවකාශය ගැන සැලකිලිමත් වී පැන යන්න (ඒ අනුව CSS හෝ HTML සඳහා). සිදු විය.


7
ඔබේ පිළිතුරේ පළමු පේළිය විය යුත්තේ "මෙහි බොහෝ පිළිතුරු යල් පැන ගිය ඒවා / CSS2 සඳහා පමණක් අදාළ වේ".
සල්මාන් ඒ

7
AlSalmanA මා සඳහන් කළ පිළිතුරු මුල සිටම වැරදිය. ඒවා CSS2.1, CSS2 හෝ CSS1 සඳහා අදාළ නොවේ.
රොබට් සීමර්

O රොබට්සයිමර් හොඳ කරුණක්, මම මගේ අදහස stackoverflow.com/questions/50812118/… වෙත ගෙන ගියෙමි (එය කිසි විටෙකත් මෙම මාතෘකාවට සම්බන්ධ නොවේ)
පීටර් ටී.

සහ ජාවාස්ක්‍රිප්ට් ක්‍රියාත්මක කිරීම: github.com/mathiasbynens/CSS.escape/blob/master/css.escape.js
Duarte Cunha Leão

71

මම ඔබේ ප්‍රශ්නයට මෙහි ගැඹුරින් පිළිතුරු දී ඇත: http://mathiasbynens.be/notes/css-escapes

CSS (සහ ජාවාස්ක්‍රිප්ට්) හි ඇති ඕනෑම අක්ෂරයකින් බේරෙන්නේ කෙසේද යන්න ලිපියෙන් විස්තර කෙරෙන අතර මම මේ සඳහා ද පහසු මෙවලමක් සාදා ගතිමි . එම පිටුවෙන්:

ඔබ මූලද්‍රව්‍යයකට හැඳුනුම්පතක් ලබා දෙන්නේ නම් ~!@$%^&*()_+-=,./';:"?><[]{}|`#, තේරීම්කරු මේ ආකාරයෙන් පෙනෙනු ඇත:

CSS:

<style>
  #\~\!\@\$\%\^\&\*\(\)\_\+-\=\,\.\/\'\;\:\"\?\>\<\[\]\\\{\}\|\`\#
  {
    background: hotpink;
  }
</style>

JavaScript:

<script>
  // document.getElementById or similar
  document.getElementById('~!@$%^&*()_+-=,./\';:"?><[]\\{}|`#');
  // document.querySelector or similar
  $('#\\~\\!\\@\\$\\%\\^\\&\\*\\(\\)\\_\\+-\\=\\,\\.\\/\\\'\\;\\:\\"\\?\\>\\<\\[\\]\\\\\\{\\}\\|\\`\\#');
</script>

4
Ar ඩැරල් ඇත්ත වශයෙන්ම, මෙය ඉතා ආන්තික උදාහරණයකි, නමුත් වැනි දේවල් class="404-error"ප්‍රයෝජනවත් විය හැකිය.
මතියස් බයිනස්

මට උදාහරණයක් තිබේ: මම සින්ටැක්ස් ඉස්මතු කරන පද්ධතියේ ප්‍රතිදානය CSS බවට පරිවර්තනය කරමි. එයට “ISO C ++: Types ( _t / _type)” වැනි පන්ති නම් ඇත. මම හිස් අවකාශය පමණක් ප්‍රතිස්ථාපනය කළහොත් මට වලංගු පන්ති නම් තිබේ.
පියාඹන බැටළුවන්

ඔබේ වෙබ් අඩවියේ, ඔබ පවසන්නේ අවකාශයේ අක්‍ෂරය බැක්ස්ලෑෂ් වලින් ගැලවිය හැකි බවයි. මම එය පන්ති නාමයකින් උත්සාහ කළ විට, මට එය වැඩ කිරීමට නොහැකි වේ. මෙම උදාහරණයේ ඉඩක් නොමැති බව මම දනිමි. එය කළ හැකි ද?
ආදමාර්ලා

D ඇඩමර්ලා මූලද්‍රව්‍යයට <p class="foo bar">පන්ති දෙකක් එකතු කරයි :, සහ . HTML මූලද්‍රව්‍යයකට සුදු අවකාශය අඩංගු පන්ති නාමයක් එක් කිරීමට ක්‍රමයක් නැත (මට සිතිය හැකි). සුදු පැහැති අක්ෂර වලින් බේරෙන්නේ කෙසේද යන්න පිළිබඳ තොරතුරු ඇතුළත් වූයේ වෙනත් හඳුනාගැනීමේ සන්දර්භය තුළ එවැනි අක්ෂර වලින් ගැලවීම ප්‍රයෝජනවත් වන බැවිනි, උදා: අකුරු පවුලේ නම්. pfoobar
මතියස් බයිනන්ස්

3
ජීවිතයේ බොහෝ දේ මෙන්ම CSS හි "තාක්‍ෂණිකව නෛතික සිට අන්තයට" සහ "බුද්ධිමත්" අතර වෙනසක් ඇති බව පෙනේ.
වොක්ස්මන්

69

W3C පිරිවිතර කියවන්න . (මෙය CSS 2.1, ඔබගේ බ්‍රව්සර් උපකල්පනය සඳහා සුදුසු අනුවාදය සොයා ගන්න)

සංස්කරණය කරන්න: අදාළ ඡේදය පහත පරිදි වේ:

CSS හි, හඳුනාගැනීම් වලට (තේරීම් කරුවන්ගේ මූලද්‍රව්‍ය නම්, පංති සහ හැඳුනුම්පත් ඇතුළුව) අඩංගු විය හැක්කේ [a-z0-9] සහ ISO 10646 අක්ෂර U + 00A1 සහ ඊට වැඩි, සහ යටි ඉර (-) සහ යටි ඉරි (_) ; ඒවාට ඉලක්කම් වලින් හෝ හයිපනයකින් පසුව ඉලක්කම් වලින් ආරම්භ කළ නොහැක. හඳුනාගැනීම් වලට පැන ගිය අක්ෂර සහ ඕනෑම ISO 10646 අක්ෂර සංඛ්‍යා කේතයක් ලෙස අඩංගු විය හැකිය (ඊළඟ අයිතමය බලන්න). උදාහරණයක් ලෙස, "B&W?" "B \ & W \?" හෝ "B \ 26 W \ 3F".

සංස්කරණය 2: Triptych පිළිතුරේ @mipadi ලකුණු සිදු කර ඇත්තේ, මෙම තියෙන්නේ පත්රයට දින ද එම වෙබ් පිටුව තුළ,:

CSS හි, හඳුනාගැනීම් '-' (ඉරක්) හෝ '_' (අවධාරනය) සමඟ ආරම්භ විය හැකිය. '-' හෝ '_' වලින් ආරම්භ වන වචන සහ දේපල නම් විකුණුම්කරුට විශේෂිත දිගු සඳහා වෙන් කර ඇත. එවැනි විකුණුම්කරුට විශේෂිත දිගු සඳහා පහත දැක්වෙන ආකෘතීන්ගෙන් එකක් තිබිය යුතුය:

'-' + vendor identifier + '-' + meaningful name 
'_' + vendor identifier + '-' + meaningful name

උදාහරණ):

නිදසුනක් ලෙස, ප්‍රදර්ශනයේ නැගෙනහිර පැත්තේ මායිමේ වර්ණය විස්තර කිරීම සඳහා XYZ සංවිධානය දේපලක් එකතු කළහොත්, ඔවුන් එය -xyz-border-east-color ලෙස හැඳින්විය හැකිය.

දන්නා වෙනත් උදාහරණ:

 -moz-box-sizing
 -moz-border-radius
 -wap-accesskey

ආරම්භක ඉරක් හෝ යටි ඉරි ඇඳීම කිසියම් වර්තමාන හෝ අනාගත මට්ටමේ CSS විසින් කිසි විටෙක දේපලක හෝ මූල පදයක භාවිතා නොකරන බවට සහතික වේ. මේ අනුව සාමාන්‍ය CSS ක්‍රියාත්මක කිරීම් මඟින් එවැනි ගුණාංග හඳුනා නොගත හැකි අතර විග්‍රහ කිරීමේ දෝෂ හැසිරවීමේ නීතිරීති අනුව ඒවා නොසලකා හැරිය හැක. කෙසේ වෙතත්, ආරම්භක ඉරක් හෝ අවධාරනය ව්‍යාකරණයේ කොටසක් වන බැවින්, CSS 2.1 ක්‍රියාත්මක කරන්නන්ට සෑම විටම විකුණුම්කරුට විශේෂිත වූ දිගු සඳහා සහය දැක්වුවද නැතත් CSS අනුකූල විග්‍රහයක් භාවිතා කිරීමට හැකි විය යුතුය.

කතුවරුන් විකුණුම්-විශේෂිත දිගු වලින් වැළකී සිටිය යුතුය


ප්‍රමුඛ ඩෑෂ් සහ අවධාරනය පිළිබඳ ඔබගේ දෙවන සංස්කරණය ගැන මම සඳහන් කළ නමුත් එය පැහැදිලි කිරීමට අමතක විය. ව්යාකූලත්වයට කණගාටුයි.
ඇල්බින්

24

සම්පූර්ණ නිත්‍ය ප්‍රකාශනය:

-?(?:[_a-z]|[\200-\377]|\\[0-9a-f]{1,6}(\r\n|[ \t\r\n\f])?|\\[^\r\n\f0-9a-f])(?:[_a-z0-9-]|[\200-\377]|\\[0-9a-f]{1,6}(\r\n|[ \t\r\n\f])?|\\[^\r\n\f0-9a-f])*

එබැවින් “ -” සහ “ _” හැර ඔබේ ලැයිස්තුගත අක්ෂර සියල්ල කෙලින්ම භාවිතා කරන්නේ නම් අවසර නැත. නමුත් ඔබට බැක්ස්ලෑෂ් foo\~barභාවිතයෙන් හෝ යුනිකෝඩ් අංකනය භාවිතා කර ඒවා කේතනය කළ හැකිය foo\7E bar.


ඇයි [\200-\377]? [\178-\1114112]CSS 3 හි නිරුපද්‍රිතව අවසර දී ඇත.
පියාඹන බැටළුවන්

\377මෙන්න ඇත්තටම වැරදියි. CSS2.1 හි ලෙක්සිකල් ස්කෑනර් කොටසේ ව්‍යාකරණ පිළිබඳ සටහනක් ඇත: "" \ 377 "නිරූපණය කරන්නේ ෆ්ලෙක්ස් හි වර්තමාන අනුවාදයන් සමඟ ගනුදෙනු කළ හැකි ඉහළම අක්‍ෂර අංකය (දශම 255) ය. එය කියවිය යුත්තේ" \ 4177777 "( දශම 1114111), එය යුනිකෝඩ් / අයිඑස්ඕ -10646 හි ඇති හැකි ඉහළම කේත ලක්ෂ්‍යය වේ. එය ද විය යුතුය \240නොවේ, මෙන්ම \377. මම හිතන්නේ මේ වන විට අවුරුදු 7 ක් පැරණි නමුත් එතැන් සිට තත්වය ටිකක් වෙනස් වී ඇත.
ජේම්ස් ඩොනලි

1
වඩාත් නිවැරදි නිත්‍ය ප්‍රකාශනයක් වනු ඇතැයි මම විශ්වාස කරමි -?(?:[_a-z]|(?![\u0000-\u0239]).*|\\[0-9a-f]{1,6}(\r\n|[ \t\r\n\f])?|\\[^\r\n\f0-9a-f])(?:[_a-z0-9-]|(?![\u0000-\u0239]).*|\\[0-9a-f]{1,6}(\r\n|[ \t\r\n\f])?|\\[^\r\n\f0-9a-f])*.
ජේම්ස් ඩොනලි

2
@ ජේම්ස් ඩොනලි මගේ පිළිතුරට යම් යාවත්කාලීනයක් අවශ්‍ය යැයි ඔබ සිතන්නේ නම් කරුණාකර එය සංස්කරණය කිරීමට නිදහස් වන්න.
ගුම්බෝ

11

වැඩකරන විසඳුමක් සොයන අයට, ඔබට පන්ති අංකයකින් ආරම්භ වන්නේ නම්, ඔබට ගුණාංග තේරීම් කාරකයක් භාවිතා කළ හැකිය. වෙනස් කරන්න:

.000000-8{background:url(../../images/common/000000-0.8.png);} /* DOESN'T WORK!! */

මේ සඳහා:

[class="000000-8"]{background:url(../../images/common/000000-0.8.png);} /* WORKS :) */

එසේම, බහුවිධ පංති තිබේ නම්, මා සිතන තේරීම් කාරකයේදී ඒවා නියම කිරීමට ඔබට අවශ්‍ය වනු ඇත.

මුලාශ්‍ර:

  1. https://benfrain.com/when-and-where-you-can-use-numbers-in-id-and-class-names/
  2. අංක වලින් ආරම්භ වන නම් සහිත CSS පන්ති වලංගු කිරීමට වැඩපිළිවෙළක් තිබේද?

5

මගේ අවබෝධය නම් අවධාරනය තාක්‍ෂණිකව වලංගු බවයි. පරීක්ෂාකාරී වන්න:

https://developer.mozilla.org/en/underscores_in_class_and_id_names

"... 2001 මුල් භාගයේ ප්‍රකාශයට පත් කරන ලද පිරිවිතරයන් සඳහා වූ දෝෂයන් පළමු වරට අවධාරනය කරයි."

ඉහත සම්බන්ධිත ලිපියේ සඳහන් වන්නේ ඒවා කිසි විටෙකත් භාවිතා නොකරන්න, ඉන්පසු ඒවාට සහාය නොදක්වන බ්‍රව්සර් ලැයිස්තුවක් ලබා දෙන අතර, ඒ සියල්ලම අවම වශයෙන් දිගුකාලීන අතිරික්තයක් භාවිතා කරන්නන්ගේ සංඛ්‍යාව අනුව ය.


3

HTML5 / CSS3 සඳහා පන්ති සහ හැඳුනුම්පත් අංක සමඟ ආරම්භ කළ හැකිය.


1
මේ සඳහා ඔබට ප්‍රභවයක් තිබේද? සමහර විට මට යමක් මග හැරී ඇත , නමුත් CSS3 තේරීම් මඟින් ප්‍රමුඛ අංකවලට ඉඩ නොදෙන CSS 2.1 පිරිවිතරයේ හඳුනාගැනීමේ අර්ථ දැක්වීමට සබැඳි දක්වයි .
රයන්

11
w3.org/TR/2003/WD-css3-syntax-20030813/#characters <- තවමත් ප්‍රමුඛ අංක ආදිය සඳහා අවසර නොදේ (එය ක්‍රියාත්මක වුවද)
ජේමි පේට්

10
HTML 5 පන්ති සහ හැඳුනුම්පත් අංකයකින් ආරම්භ කිරීමට ඉඩ දෙයි (උදා class="1a"). කෙසේ වෙතත්, CSS හදුනාගැනීමක් අංකයකින් ආරම්භ කළ නොහැක (උදා: ක්‍රියා .1aනොකරනු ඇත). ඔබට එයින් ගැලවිය හැකිය, දැඩි (උදා .\31 aහෝ .\000031a).
ඔරියෝල්

එය සාමාන්‍යයෙන් CSS හි ද ක්‍රියාත්මක වුවද එය තවමත් නිල නොවන බව පෙනේ. "දේපල නම් සහ රීති නාම සැමවිටම හඳුනාගැනීම් වේ, ඒවා අකුරකින් හෝ යටි ඉරකින් පසුව අකුරකින් ආරම්භ විය යුතු අතර පසුව අකුරු, අංක, යටි ඉර හෝ අවධාරනය කළ හැකිය." - w3.org/TR/css3-syntax/#syntax-description
ස්ටිකර්

Ang පන්ග්ලොස් නමුත් පන්ති නම් දේපල නම් හෝ රීති නාම නොවේ.
බෙනට් මැක්ල්වී

1

@ ට්‍රිප්ටිච්ගේ පිළිතුරෙන් බැහැරව, ඔබට පහත දැක්වෙන රීජෙක්ස් තරග 2 භාවිතා කර නූලක් වලංගු වේ:

[^a-z0-9A-Z_-]

මෙය ප්‍රතිලෝම ගැලපීමක් වන අතර එය පහසුවෙන් ඉවත් කිරීම සඳහා අකුරක්, අංකයක්, ඉරක් හෝ අවධාරනය නොකරන කිසිවක් තෝරා ගනී.

^-*[0-9]+

මෙය ඉරක් 0 හෝ 1 ට ගැලපෙන අතර පසුව නූලක ආරම්භයේ අංක 1 ක් හෝ වැඩි ගණනක් ගැලපේ.

මම එය PHP හි භාවිතා කරන්නේ කෙසේද:

//Make alphanumeric with dashes and underscores (removes all other characters)
$class = preg_replace("/[^a-z0-9A-Z_-]/", "", $class);
//Classes only begin with an underscore or letter
$class = preg_replace("/^-*[0-9]+/", "", $class);
//Make sure the string is 2 or more characters long
return 2 <= strlen($class) ? $class : '';
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.