javascript - 使用 RegExp 在特殊字符位置对字符串进行子串

标签 javascript

假设我有这样的刺:ABC5DEF/G 或者可能是 ABC5DEF-15 甚至只是 ABC5DEF,它可能更短 AB7F 或 AB7FG/H。

我需要创建一个 javascript 变量,其中仅包含“/”或“-”之前的子字符串。我真的很想使用一组值来打破。我想也许可以尝试这样的事情。

...
var srcMark = array( '/', '-' );
var whereAt = new RegExp(srcMark.join('|')).test.str;
alert("whereAt= "+whereAt);
...

但这会返回错误:ReferenceError:找不到变量:数组

我怀疑我错误地定义了我的数组,但尝试了许多其他方法但没有成功。

我做错了什么?

最佳答案

数组的定义方式与 JavaScript 不同,最简单的定义方法是:

var srcMark = ['/','-'];

此外,test 是一个函数,因此必须这样调用:

whereAt = new RegExp(srcMark.join('|')).test(str);

请注意,test 实际上不会告诉您,正如您的变量所暗示的那样,它将返回 true 或 false。如果你想查找字符在哪里,请使用 String.prototype.search:

str.search(new RegExp(srcMark.join('|'));

希望有帮助。

关于javascript - 使用 RegExp 在特殊字符位置对字符串进行子串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45741325/

相关文章:

javascript - 如何在 Polymaps 中监听图层缩放事件?

javascript - 从其他组件使用 setState 调用函数

javascript - 我将如何为本网站的导航创建悬停动画?

javascript - 单选按钮值和提交按钮

javascript - Vue.js 中的电子邮件验证

javascript - WP8.1 Inputpane(键盘)推送/移动 cordovaView/Html 内容

javascript - 如何更改雅虎邮箱、注销 URL?

Javascript 加载新表单

javascript - 传单.js : Linking Activities to Map Markers

Javascript:独特的内部函数 "remembers"外部函数第一次调用参数?