我正在学习正则表达式,目前看来我很困惑。
val.replace(/^[^a-zA-Z0-9]*|[^a-zA-Z0-9]*$/g, '');
在上面的表达式中
1) 哪一部分表示不包含空格?因为我试图排除所有非字母数字字符。
2) 由于我什至不想使用“$”和“”(下划线),我可以在如下表达式中指定“$”和“”(下划线)吗?
val.replace(/^[^a-zA-Z0-9$_]*|[^a-zA-Z0-9$_]*/g, '');?
3) 作为 'x|y
' 指定 - “查找任何指定的备选方案”。那为什么我们使用了这样的东西 [^a-zA-Z0-9]|[^a-zA-Z0-9]
两边都一样?
请帮助我理解这一点,发现它有点困惑和困难。
最佳答案
此正则表达式替换字符串中所有开始和尾随的非字母数字字符。
它没有特别指定空格。它只是否定字母数字字符以外的所有内容。方括号内的任何内容都是字符集 -
[Whatever]
。字符集内的起始大写字母 (^
) 表示它是一个否定。所以[^a-zA-Z0-9]*
表示零个或多个 a-z、A-z 或 0-9 以外的字符。末尾的
$
符号表示,到字符串末尾,与 $ 和 _ 符号无关。这将已经包含在字符集中,因为它都是非字母数字字符。引用@smathy 的回答。
仅供引用,无法通过滚动教程来学习 AFAIU 正则表达式。您只需了解基础知识并尝试示例。
关于javascript - 正则表达式 - val.replace(/^[^a-zA-Z0-9]*|[^a-zA-Z0-9]*$/g ,"' ');,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26857934/