I have below test cases as input:
[This is my test] [This is my test] My name is xyz.
Want Expected output as :
[This is my test] My name is xyz.
.
Want Expected output as:[This is my test] My name is xyz.
My name is xyz.
For above test cases I want to replace only first occurrence of '[This is my test] ' with blank. I don't want to replace second occurrence of match.
How do I resolve this using regex in JavaScript?
Thanks in advance.
ETA:
I just want to give more clarification that, i dont want to use hard coded value in regex , i want to use variable in regex.
Assume that[Thi开发者_如何学Pythons is my test]
is stored in one variable i.e. var defaultMsg = "[This is my test] ";
Anyone try this?
<script>
var defaultMsg ="[This is my test]"
var str = "[This is my test] [This is my test] My name is xyz.";
str=str.replace(defaultMsg,"");
alert(str);
</script>
No need for regexp and replace does not care about special chars if the source string is not a regular expression object but just a string. Tested Mozilla 1.7, FF3.6.6, Safari 5, Opera 10 and IE8 windows XP sp3. Not sure I understand why this was voted down if it does the job with a minimum of fuss.
to replace all occurrences, add a g (note: this is not standard):
str=str.replace(defaultMsg,"","g"); // "gi" for case insensitivity
replace MDN
If the search pattern is in a string variable and can contain special characters, then it must be escaped. Like so:
var defaultMsg = "[This is my test] ";
//-- Must escape special characters to use in a RegEx.
defaultMsg = defaultMsg.replace (/([\!\$\(\)\*\+\.\/\:\=\?\[\\\]\^\{\|\}])/g, "\\$1")
var zRegEx = new RegExp (defaultMsg, '');
var Str = '[This is my test] [This is my test] My name is xyz.';
Str = Str.replace(zRegEx, "");
console.log (Str); //-- Or use alert()
Sure. Use replace()
:
var s = "[This is my test] [This is my test] My name is xyz.";
alert(s.replace(/\[This is my test\] /, ''));
If you want to replace all occurrences:
alert(s.replace(/\[This is my test\] /g, ''));
This will do what you want:
str= '[This is my test] [This is my test] My name is xyz.';
str = str.replace(/\[This is my test\]/,"");
To replace all occurences of '[This is my test]' you need to call:
str = str.replace(/\[This is my test\]/g,"");
The JavaScript replace
function defaults to non-global so it only replaces the first match:
var foo = '[This is my test] [This is my test] My name is xyz.';
var bar = foo.replace(/\[This is my test\]\s/, '');
If you wanted to replace all occurrences of the string then make the regex global by appending a g
:
var bar = foo.replace(/\[This is my test\]\s/g, '');
var str="[This is my test] [This is my test] My name is xyz.?";
var patt1=(/[[This is my test]].*My name is xyz/i);
document.write(str.match(patt1));
var originalText = '[This is my test] [This is my test] My name is xyz.';
var defaultMsg = "[This is my test] ";
alert( originalText.replace( defaultMsg , '' ) );
This will do the trick:
var foo = '[This is my test] ';// or whatever you want
foo = foo.replace(/([\[\]])/, '\\$1', 'g'); // add all special chars you want
var patern = new RegExp(foo);
var myString = '[This is my test] [This is my test] My name is xyz.';
var result = myString.replace(patern, '');
精彩评论