如何在字符串中查找所有大写字符的位置?

时间:2014-11-26 15:26:19

标签: javascript jquery

如何在jquery中获取字符串中所有大写字符的位置?

假设 var str = "thisIsAString";

答案是4,6,7(t在索引= 0)

6 个答案:

答案 0 :(得分:11)

迭代这些字母并将它们与正则表达式匹配。例如

var inputString = "What have YOU tried?";
var positions = [];
for(var i=0; i<inputString.length; i++){
    if(inputString[i].match(/[A-Z]/) != null){
        positions.push(i);
    }
}
alert(positions);

答案 1 :(得分:1)

您可能希望使用正则表达式来匹配相应的字符(在本例中为[A-Z]或类似字符)并循环匹配。有点像:

// Log results to the list
var list = document.getElementById("results");
function log(msg) {
  var item = document.createElement("li");
  item.innerHTML = msg;
  list.appendChild(item);
}

// For an input, match all uppercase characters
var rex = /[A-Z]/g;
var str = "abCdeFghIjkLmnOpqRstUvwXyZ";
var match;
while ((match = rex.exec(str)) !== null) {
  log("Found " + match[0] + " at " + match.index);
}
<ol id="results"></ol>

这将循环遍历字符串,匹配每个大写字符,并(在示例中)将其添加到列表中。您可以轻松地将其添加到数组中或将其用作函数的输入。

这与RegExp.exec {{1}}中给出的技术相同,匹配提供了一些额外的数据。您还可以使用更复杂的正则表达式,这种技术仍然可以使用。

答案 2 :(得分:1)

只需使用match()。例如:

var str = 'thisIsAString';
var matches = str.match(/[A-Z]/g);
console.log(matches);

答案 3 :(得分:0)

伪代码(没有太多时间)

var locations = [];
function getUpperLocs(var text = ''){
    for(var i = 0;i == check.length();i++)
{
    if(checkUpper(text){
        locations.push(i)
    }
} 

    function checkUppercase(var str = '') {
        return str === str.toUpper();
    }
}

没有太多伪代码,但可能有一些语法错误..

答案 4 :(得分:0)

使用javascript的简单解决方案:)

index = paragraph.match(/[A-Z]/g).map(function (cap) {
    return paragraph.indexOf(cap);
});

希望这可以帮助遇到此问题的任何人

答案 5 :(得分:0)

这应该有效。

function spinalCase(str) {
  let lowercase = str.trim()
  let regEx = /\W+|(?=[A-Z])|_/g
  let result = lowercase.split(regEx).join("-").toLowerCase()

  return result;
}

spinalCase("thisIsAString");