javascript正则表达式检查第一个和最后一个字符是否相似?

标签 javascript regex

是否有任何简单的方法来检查字符串的第一个和最后一个字符是否相同,仅使用正则表达式?

我知道你可以用 charAt 查看

var firstChar = str.charAt(0);
var lastChar = str.charAt(length-1);
console.log(firstChar===lastChar):

我不是要这个:Regular Expression to match first and last character

最佳答案

您可以将正则表达式与 capturing group 结合使用及其 backreference通过捕获第一个字符来断言起始字符和结束字符相同。要测试正则表达式匹配,请使用 RegExp#test方法。

var regex = /^(.).*\1$/;

console.log(
  regex.test('abcdsa')
)
console.log(
  regex.test('abcdsaasaw')
)

Regex explanation here :

  1. ^ 断言字符串开头的位置
  2. 第一捕获组 (.)
  3. .* 匹配任何字符(换行符除外)- 在零次和无限次之间,尽可能多次,根据需要回馈(贪婪)
  4. \1 匹配与第一个捕获组最近匹配的相同文本
  5. $ 断言字符串末尾的位置

. 不包含换行符,为了包含换行符更新正则表达式。

var regex = /^([\s\S])[\s\S]*\1$/;

console.log(
  regex.test(`abcd

sa`)
)
console.log(
  regex.test(`ab
c
dsaasaw`)
)

引用:How to use JavaScript regex over multiple lines?

Regex explanation here :

  1. [.....] - 匹配出现的单个字符
  2. \s - 匹配任何空白字符(等于 [\r\n\t\f\v ])
  3. \S - 匹配任何非空白字符(等于 [^\r\n\t\f ])

最后 [\s\S] 匹配任何字符。

关于javascript正则表达式检查第一个和最后一个字符是否相似?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41871841/

相关文章:

javascript - 如何按值对redis中的哈希进行排序

javascript - 使用javaScript访问父div中的元素?

javascript - RegExp/Jquery/Isotope 按关键字搜索和过滤 : not working with some keyword combination, 为什么?

javascript - 在整个页面上工作的水平滚动 jquery

javascript - 返回子字符串的问题。第二双眼睛

javascript - 结合 DustJS 尺寸助手并选择

Python:用reg的输出替换所有列

PHP Preg-替换多于一个下划线

c# - 在字母的第一个实例处分割文本

正则表达式 - 嵌套前瞻断言