JavaScript`替换`语法

时间:2018-02-16 19:30:45

标签: javascript regex replace

我是JavaScript的新手,遇到了我想要完全理解的练习解决方案。

练习要求从字符串中删除所有元音。解决方案:

function disemvowel(str) {
  return str.replace(/[aeiou]/gi, '');
}

我理解基本语法:

  • /'之间的任何内容都是您想要替换的内容

  • 第二个参数是用

  • 替换它的内容
  • / g是一个全球代码' ....?所以不只是第一个实例

我的问题:

  • 解决方案中的括号代表什么?

  • 我/ g之后是什么?我读到这意味着忽略,但它忽略了什么?

感谢您的任何信息! :)

4 个答案:

答案 0 :(得分:2)

你所拥有的是所谓的“正则表达式”。在JavaScript中,你有所谓的“正则表达式文字”,这是/[aeiou]/gi的东西。 [aeiou]被称为“字符类”或“字符集”,表示“匹配aeiou之一”。结束g后的i/是确定正则表达式行为方式的标志。 g表示“全局”或“查找所有匹配”,i表示“不区分大小写”。然后用空字符串''替换所有这些匹配项,以便在生成的字符串中删除所有出现的元音

答案 1 :(得分:0)

在括号内键入要匹配的所有字符(将其视为字符枚举)。 import cats._ import cats.implicits._ import cats.arrow.FunctionK import scala.language.higherKinds object TraverseFromIso { // This method can build you a `Traversable[Seq]` from // an `Traversable[List]` and a pair of polymorphic conversion // functions: def traverseFromIso[F[_], Z[_]] (forward: F ~> Z, inverse: Z ~> F) (implicit zt: Traverse[Z]) : Traverse[F] = new Traverse[F] { def foldLeft[A, B](fa: F[A], b: B)(f: (B, A) ⇒ B): B = zt.foldLeft(forward(fa), b)(f) def foldRight[A, B](fa: F[A], lb: Eval[B])(f: (A, Eval[B]) => Eval[B]): Eval[B] = zt.foldRight(forward(fa), lb)(f) def traverse[G[_], A, B] (fa: F[A]) (f: (A) ⇒ G[B]) (implicit appG: Applicative[G]) : G[F[B]] = { (zt.traverse(forward(fa))(f)(appG)).map(zb => inverse(zb)) } } // A little demo def main(args: Array[String]): Unit = { // To instantiate a `Traverse[Seq]`, we have to provide // two natural transformations (from List to Seq and back): implicit val seqTraverse: Traverse[Seq] = traverseFromIso( new FunctionK[Seq, List] { def apply[X](sx: Seq[X]): List[X] = sx.toList }, new FunctionK[List, Seq] { def apply[X](lx: List[X]): Seq[X] = lx } ) // do stuff with `Traversable[Seq]` here } } 用于 nsensitive。

答案 2 :(得分:0)

/[aeiou]/gi会将a,e,i,o,u中的任何字符与case insensitivity相匹配,这就是i最后的内容

基本上在你的情况下,它将从你的字符串中删除所有元音的出现(用空字符串替换元音)



const str = "hUnger gamEs";

console.log(str.replace(/[aeiou]/gi, ''));




答案 3 :(得分:0)

g修饰符:全局。所有比赛(首场比赛都没有回归)

i修饰符:不敏感。不区分大小写的匹配(忽略[a-zA-Z]的情况)