使用Javascript提取简单字符串的一部分
Extracting a part of simple string using Javascript
假设我有这些字符串(每一新行都是一个单独的字符串):
EducationLink
BioLink
InterestsLink
我想使用Javascript提取不是"链接"的部分。我该怎么做?预期结果为
Education
Bio
Interests
我试过Regex,但我对它们不是很有经验,但它失败了:
/^ (^Link) $/
使用slice()和substr()等字符串函数,我只得到所选文本右侧的值,而不是所需的左侧值。
谢谢你的帮助。
您可以使用.replace()
'EducationLink'.replace('Link', ''); //returns Education
https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/replace
问题是,你可以使用regex来进行替换,但作为一个如此简单的场景(除非有更多),你为什么要把事情搞得过于复杂?
text = input.replace(/Link('n|$)/g,"'n");
您需要将Link
放入RegEx的末尾,例如:
^([A-Z]+)Link$
这匹配:
- A和Z之间的一个或多个字符
- 然后单词
Link
- 然后是字符串的末尾
括号中的部分将作为一个组返回。
此外,如果您只需要删除后缀Link
,则可以使用Javascript中的replace()
方法:
var x = myStr.replace('Link', '');
一种方法是使用String.split()MDN
var txt = 'EducationLink'.split('Link')[0]; // txt == 'Education'
试试这个:
<script>
var str = "EducationLink";
index = str.search(/link/i);
str = str.substr(0,index);
</script>
正如其他人所指出的,如果所有字符串都以"Link"结尾,只需使用替换即可。否则,这些方法中的任何一种都可以正常工作:
var i = 0;
var strings = [
'EducationLink',
'BioLink',
'InterestsLink'
];
var s = '';
var r = /^(.+)Link$/
for (i = 0; i < strings.length; i += 1) {
s = strings[i];
//s = s.substring(0, s.indexOf('Link')); //Uncomment for substring
//s = s.match(r)[1]; //Uncomment for regex
s = s.replace('Link', '');
strings[i] = s;
}
console.log(strings);
复制并粘贴到浏览器控制台窗口中以运行。
为了在对另一个答案的评论中回答您的问题("然而,为什么我的RegEx不起作用?"),您的RegEx会做以下操作:
/^ (^Link) $/
//Each regex term on own line, commented below
^ //start of string
//Literal space
(^Link) //Capturing group, string starting with 'Link'.
//Literal space
$ //end of string
虽然在Regex中可以有两个"字符串开头"标识符,但永远只有一个"字符串开始"。^
字符只是包含在方括号中的字符类中的否定,而不是弯曲的。如果要捕获文字插入符号(^
),请在其前面放一个反斜杠('^
)。
相关文章:
- 如何检查字符串的一部分与数组匹配
- 将字符串的一部分设置为数组的一部分
- 用数字单位替换字符串的一部分
- 移除字符串(如果找到)移除JS中字符串的一部分
- 如何获得字符串的一部分
- 作为onclick确认的一部分,Razor中的字符串属性
- 用HTML元素替换字符串的一部分
- 如何知道找到的单词是字符串的一部分还是JavaScript中的函数调用
- j如何从给定字符串的一部分替换字符串
- 如何使用RegExp选择字符串的一部分并在变量中重用它
- 返回javascript中regex字符串的一部分
- JQuery获取字符串的一部分
- JavaScript Regexp仅匹配字符串的一部分
- 如何在数组jQuery中查找字符串的一部分
- 撇号标记在javascript字符串中与Backslash一起发送,该字符串使用ajax作为json对象的一部分发送到p
- JavaScript:将字符串的一部分放入DOM容器中,保存溢出
- 将字符串的一部分转换为DataTables的JSON
- 如何在javascript数组中剥离字符串的一部分
- 如何在Javascript/Jquery中突出显示给定字符串中的一部分字符串
- 如何在javascript中搜索整个字符串中的一部分字符串