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

ruyhziif  于 2023-05-22  发布在  jQuery
关注(0)|答案(7)|浏览(171)

如何在jquery中获取字符串中所有大写字符的位置?
假设var str = "thisIsAString";
答案将是4,6,7(t位于索引= 0)

4dc9hkyq

4dc9hkyq1#

遍历这些字母并将它们匹配到正则表达式。举个例子

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);
kadbb459

kadbb4592#

简单地凸轮使用match()。示例:

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

gmxoilav3#

您可能希望使用正则表达式来匹配适当的字符(在本例中为[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.execMDN example中给出的技术相同,匹配提供了一些额外的数据。您还可以使用更复杂的正则表达式,这种技术应该仍然有效。

wyyhbhjk

wyyhbhjk4#

一个简单的JavaScript解决方案:)

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

希望这能帮助任何遇到这个的人

ctehm74n

ctehm74n5#

这个应该能用

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

  return result;
}

spinalCase("thisIsAString");
unftdfkk

unftdfkk6#

有个办法

//Your string
    const string = "Hello World"
//Splitting string's letters into an array
    const stringToArray = string.split("")
//Creating an empty array where you are going to hold your upperCase 
  indexes
    const upperCaseIndexes = []

    stringToArray.map((letter,index) => {
//Checking if the letter is capital and not an empty space
      if(letter === letter.toUpperCase() && letter != " ") {
//Adding the upperCase's index into the array that hold the indexes
        upperCaseIndexes.push(index)
      }
     })

  console.log(upperCaseIndexes)
//You can use the this array to do something with the upperCase letter
//Example
  let newString;
  upperCaseIndexes.forEach(e => {
    stringToArray.splice(e,1, string[e].toLowerCase())
    newString = stringToArray.join('')
  })
slsn1g29

slsn1g297#

伪代码(时间不多)

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();
    }
}

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

相关问题