javascript - 使用 REGEX 从句子开头删除不需要的字符
问题描述
我需要忽略字符串开头的字符,直到出现第一个有效字符。有效字符是+
,numbers
和letters
。
所以我的策略是找出是否有这样的字符以删除它们。
我发现这几乎没问题
.+?(?=[A-Za-z0-9\+])
但这几乎可以工作,因为当字符串以“无效”字符开头时它完全匹配,但是当由于某种原因字符串以有效字符开头并且长度> 1时给我一个误报
所以这句话
abcde
,"a"
作为匹配返回,我不明白为什么。
我怎样才能解决这个难题?
非常感谢
解决方案
该.+?
模式至少匹配任何字符一次,所以你不应该对它匹配感到惊讶a
。请注意,您的模式可以在字符串中的任何位置匹配,因为您没有使用^
锚点。
您可以使用
.replace(/^[^A-Za-z0-9+]+/, '')
请参阅正则表达式演示。详情:
^
- 字符串的开始[^A-Za-z0-9+]+
- 一个或多个字符而不是 ASCII 字母或数字
JavaScript 演示:
const texts = ['abcde', '$#%^%abc'];
for (let text of texts) {
console.log(text, '=>', text.replace(/^[^A-Za-z0-9+]+/, ''));
}
推荐阅读
- python - Google 语音识别 API 凭据错误
- odoo - 尝试从外部应用程序命中时禁用或绕过 odoo 登录
- regex - 提取特殊字符之间的数据
- javascript - 如何从 Gridview 中的 LinkButton 触发 Onclick 事件驻留在 updatePanel 中?
- excel - 在 Excel 中计算邮政编码
- r - 使用fuzzywuzzyR替换字符串
- spring - 从 spring cloud config 更新一个完整的 JSON 配置文件
- apache - htaccess 从 url 参数重定向到永久链接
- python - 如何更改 django admin css 样式和字体?
- php - 将 Pre 5.7.9 MySQL 数据库移植到版本 8.0