Выявіць усё-CAPS выкарыстання ў тэкставым полі?

How would I write a JavaScript function that detects if the user is typing in all-caps in a

  • YOU CAN'T DO THAT. IT'S NOT SMART. is obviously what I'm trying to snake out, because it's obnoxious.
  • I like this this school. is acceptable because single letter "all capital" words are a part of the English language.
  • I mean, COME ON! This is ridiculous! should this be acceptable? In a text field that doesn't support rich text, a user needs to be able to express emphasism. I think this should be acceptable.

Хто-небудзь ёсць якія-небудзь прапановы? Я мяркую, рэгулярны выраз ў парадку.

2
Калі вобласць тэксту не ўтрымлівае малыя літары, і яна ўтрымлівае любы вялікія літары, то гэта ўсё-шапкі. Другі чэк пазбягае скардзіцца, калі поле толькі лічбы (хоць гэта здаецца малаверагодным для тэкставага поля.
дададзена аўтар Barmar, крыніца
Калі вобласць тэксту не ўтрымлівае малыя літары, і яна ўтрымлівае любы вялікія літары, то гэта ўсё-шапкі. Другі чэк пазбягае скардзіцца, калі поле толькі лічбы (хоць гэта здаецца малаверагодным для тэкставага поля.
дададзена аўтар Barmar, крыніца
Калі вобласць тэксту не ўтрымлівае малыя літары, і яна ўтрымлівае любы вялікія літары, то гэта ўсё-шапкі. Другі чэк пазбягае скардзіцца, калі поле толькі лічбы (хоць гэта здаецца малаверагодным для тэкставага поля.
дададзена аўтар Barmar, крыніца
хмм, павінна быць нейкае ўмова, якое вы павінны думаць, каб аддзяліць валідацыю паміж вялікімі літарамі.
дададзена аўтар Mr_Green, крыніца
хмм, павінна быць нейкае ўмова, якое вы павінны думаць, каб аддзяліць валідацыю паміж вялікімі літарамі.
дададзена аўтар Mr_Green, крыніца
хмм, павінна быць нейкае ўмова, якое вы павінны думаць, каб аддзяліць валідацыю паміж вялікімі літарамі.
дададзена аўтар Mr_Green, крыніца
Верагодна, вы павінны глядзець на ASCII сімвалаў> 95.
дададзена аўтар Abilash, крыніца
Я не ўпэўнены, што вызначэнне парога з'яўляецца мэтазгодным, так як карыстальнік можа істотна ўвесці кожнае другое слова ва ўсіх каўпакамі і падтрымліваць парог пад 50%, не? Я думаю, што там павінна быць нейкая логіка прымяняецца
дададзена аўтар Jody Heavener, крыніца
Ваша вызначэнне яшчэ не дастаткова дакладна. Як вы ацэньваеце гэта? У лепшым выпадку <�я> п </я> слова ў шапках дазволена?
дададзена аўтар bfavaretto, крыніца
Ваша вызначэнне яшчэ не дастаткова дакладна. Як вы ацэньваеце гэта? У лепшым выпадку <�я> п </я> слова ў шапках дазволена?
дададзена аўтар bfavaretto, крыніца
Вы можаце таксама дадаць імя класа ў поле, як "notucase", то ў вашай праверкі сапраўдны = $ ( "notucase"). Фільтр (функцыя() {вярнуцца !! $ (гэта) .val (). Запалку (/[az]/g).length}). даўжыня Такім чынам, вы можаце толькі хіт поля, якія маюць значэнне і прапусціць лікавыя поля і іншыя палі, якія не маюць значэння.
дададзена аўтар Shanimal, крыніца
Вы можаце таксама дадаць імя класа ў поле, як "notucase", то ў вашай праверкі сапраўдны = $ ( "notucase"). Фільтр (функцыя() {вярнуцца !! $ (гэта) .val (). Запалку (/[az]/g).length}). даўжыня Такім чынам, вы можаце толькі хіт поля, якія маюць значэнне і прапусціць лікавыя поля і іншыя палі, якія не маюць значэння.
дададзена аўтар Shanimal, крыніца
Вы можаце таксама дадаць імя класа ў поле, як "notucase", то ў вашай праверкі сапраўдны = $ ( "notucase"). Фільтр (функцыя() {вярнуцца !! $ (гэта) .val (). Запалку (/[az]/g).length}). даўжыня Такім чынам, вы можаце толькі хіт поля, якія маюць значэнне і прапусціць лікавыя поля і іншыя палі, якія не маюць значэння.
дададзена аўтар Shanimal, крыніца
Я думаю, што вам трэба, каб адпавядаць малымі рэг.выразу ... і калі знойдзена, то правальвае працэдуру праверкі? ці не так? нешта накшталт IsValid = "ABCDEFGHIJKL" .match (/ [A-Z]/г) .length> 1
дададзена аўтар Shanimal, крыніца
Я думаю, што вам трэба, каб адпавядаць малымі рэг.выразу ... і калі знойдзена, то правальвае працэдуру праверкі? ці не так? нешта накшталт IsValid = "ABCDEFGHIJKL" .match (/ [A-Z]/г) .length> 1
дададзена аўтар Shanimal, крыніца
Я думаю, што вам трэба, каб адпавядаць малымі рэг.выразу ... і калі знойдзена, то правальвае працэдуру праверкі? ці не так? нешта накшталт IsValid = "ABCDEFGHIJKL" .match (/ [A-Z]/г) .length> 1
дададзена аўтар Shanimal, крыніца
@JodyHeavener - карыстальнік можа сказаць, нячыстае, страшна рэчы ў ніжнім рэгістры таксама. :) Сутнасць у тым, што вам трэба вызначыць, што логіка, то вы можаце лёгка напісаць рэгулярны выраз ці ўсё, што вы хочаце, каб прымяніць яго.
дададзена аўтар Dave S., крыніца
@JodyHeavener - карыстальнік можа сказаць, нячыстае, страшна рэчы ў ніжнім рэгістры таксама. :) Сутнасць у тым, што вам трэба вызначыць, што логіка, то вы можаце лёгка напісаць рэгулярны выраз ці ўсё, што вы хочаце, каб прымяніць яго.
дададзена аўтар Dave S., крыніца
Можа быць, проста ўсталяваць парог для адсотка вялікіх сімвалаў дазволеныя? Не больш чым на 50%? Я думаю, што адказ не будзе складзены, як толькі вы вызначаеце праблему больш дакладна.
дададзена аўтар Dave S., крыніца

9 адказы

Javascript функцыя для праверкі таго, што радок мае загалоўныя літары, але няма малых літар:

function allCaps(word) {
    var containsUpper = /[A-Z]/.test(word);
    var containsLower = /[a-z]/.test(word);

    return containsUpper && !containsLower;
}
6
дададзена
Гэта даволі брыдкі рашэнне, калі толькі word.toUpperCase() === слова дастаткова.
дададзена аўтар Florian Margaine, крыніца
@FlorianMargaine Не абавязкова, таму што рашэнне word.toUpperCase() === слова будзе правяраць, як дакладна, калі слова === 12345 або .... ці якой-небудзь іншай радкі, якая не ўтрымлівае ніякіх лістоў.
дададзена аўтар chrislondon, крыніца

Javascript функцыя для праверкі таго, што радок мае загалоўныя літары, але няма малых літар:

function allCaps(word) {
    var containsUpper = /[A-Z]/.test(word);
    var containsLower = /[a-z]/.test(word);

    return containsUpper && !containsLower;
}
6
дададзена
Гэта даволі брыдкі рашэнне, калі толькі word.toUpperCase() === слова дастаткова.
дададзена аўтар Florian Margaine, крыніца
@FlorianMargaine Не абавязкова, таму што рашэнне word.toUpperCase() === слова будзе правяраць, як дакладна, калі слова === 12345 або .... ці якой-небудзь іншай радкі, якая не ўтрымлівае ніякіх лістоў.
дададзена аўтар chrislondon, крыніца

Javascript функцыя для праверкі таго, што радок мае загалоўныя літары, але няма малых літар:

function allCaps(word) {
    var containsUpper = /[A-Z]/.test(word);
    var containsLower = /[a-z]/.test(word);

    return containsUpper && !containsLower;
}
6
дададзена
Гэта даволі брыдкі рашэнне, калі толькі word.toUpperCase() === слова дастаткова.
дададзена аўтар Florian Margaine, крыніца
@FlorianMargaine Не абавязкова, таму што рашэнне word.toUpperCase() === слова будзе правяраць, як дакладна, калі слова === 12345 або .... ці якой-небудзь іншай радкі, якая не ўтрымлівае ніякіх лістоў.
дададзена аўтар chrislondon, крыніца

Я прапаную атрымаць суадносіны літар у верхнім рэгістры. Вось так:

function getCapsRatio(val) {
   //Get the number of uppercase letters
    var up = val.match(/[A-Z]/g).length,

   //Get the number of letters (no space)
        fullLetters = val.match(/[^\s+]/g).length;

   //So the ratio of uppercase letters compared to downcase is...
    return (up * 100)/fullLetters;
}

Такім чынам, вы будзеце выкарыстоўваць гэтую функцыю:

var ratio = getCapsRatio(value);
if (ratio > 50) {
   //50% of uppercase letters? this guy is all caps!
}

Гэта павінна быць вывучана, але я мяркую, што 50% гэта добрае суадносіны думаць, што хлопец усё прапісныя.

2
дададзена

Я прапаную атрымаць суадносіны літар у верхнім рэгістры. Вось так:

function getCapsRatio(val) {
   //Get the number of uppercase letters
    var up = val.match(/[A-Z]/g).length,

   //Get the number of letters (no space)
        fullLetters = val.match(/[^\s+]/g).length;

   //So the ratio of uppercase letters compared to downcase is...
    return (up * 100)/fullLetters;
}

Такім чынам, вы будзеце выкарыстоўваць гэтую функцыю:

var ratio = getCapsRatio(value);
if (ratio > 50) {
   //50% of uppercase letters? this guy is all caps!
}

Гэта павінна быць вывучана, але я мяркую, што 50% гэта добрае суадносіны думаць, што хлопец усё прапісныя.

2
дададзена

Я прапаную атрымаць суадносіны літар у верхнім рэгістры. Вось так:

function getCapsRatio(val) {
   //Get the number of uppercase letters
    var up = val.match(/[A-Z]/g).length,

   //Get the number of letters (no space)
        fullLetters = val.match(/[^\s+]/g).length;

   //So the ratio of uppercase letters compared to downcase is...
    return (up * 100)/fullLetters;
}

Такім чынам, вы будзеце выкарыстоўваць гэтую функцыю:

var ratio = getCapsRatio(value);
if (ratio > 50) {
   //50% of uppercase letters? this guy is all caps!
}

Гэта павінна быць вывучана, але я мяркую, што 50% гэта добрае суадносіны думаць, што хлопец усё прапісныя.

2
дададзена

Можа быць, проста гэта так:

 /[a-z]/i.test(str) && str.toUpperCase() == str

Параўнайце зыходную радок з сабой уверх абсаджаны, калі яны роўныя, то карыстальнік набраў толькі вялікія літары.

2
дададзена
Гэта будзе правяраць няправільна, калі хтосьці тыпу радок, якая не ўтрымлівае літары алфавіту. Скажам, хтосьці пытае: «Колькі гадоў ты» і чалавек адказвае «13». Сістэма не дазволіць ім адправіць адказ «13», таму што
дададзена аўтар chrislondon, крыніца
будзе думаць, што гэта ўсё загалоўныя літары з шляхам toUpperCase
дададзена аўтар chrislondon, крыніца
Добрая кропка @chrislondon. Я дадаў тэст, каб вырашыць гэтую праблему.
дададзена аўтар HBP, крыніца

Можа быць, проста гэта так:

 /[a-z]/i.test(str) && str.toUpperCase() == str

Параўнайце зыходную радок з сабой уверх абсаджаны, калі яны роўныя, то карыстальнік набраў толькі вялікія літары.

2
дададзена
Гэта будзе правяраць няправільна, калі хтосьці тыпу радок, якая не ўтрымлівае літары алфавіту. Скажам, хтосьці пытае: «Колькі гадоў ты» і чалавек адказвае «13». Сістэма не дазволіць ім адправіць адказ «13», таму што
дададзена аўтар chrislondon, крыніца
будзе думаць, што гэта ўсё загалоўныя літары з шляхам toUpperCase
дададзена аўтар chrislondon, крыніца
Добрая кропка @chrislondon. Я дадаў тэст, каб вырашыць гэтую праблему.
дададзена аўтар HBP, крыніца

Можа быць, проста гэта так:

 /[a-z]/i.test(str) && str.toUpperCase() == str

Параўнайце зыходную радок з сабой уверх абсаджаны, калі яны роўныя, то карыстальнік набраў толькі вялікія літары.

2
дададзена
Гэта будзе правяраць няправільна, калі хтосьці тыпу радок, якая не ўтрымлівае літары алфавіту. Скажам, хтосьці пытае: «Колькі гадоў ты» і чалавек адказвае «13». Сістэма не дазволіць ім адправіць адказ «13», таму што
дададзена аўтар chrislondon, крыніца
будзе думаць, што гэта ўсё загалоўныя літары з шляхам toUpperCase
дададзена аўтар chrislondon, крыніца
Добрая кропка @chrislondon. Я дадаў тэст, каб вырашыць гэтую праблему.
дададзена аўтар HBP, крыніца